* Dimitri Fontaine (dimitri@2ndQuadrant.fr) wrote:
> Peter Eisentraut <peter_e@gmx.net> writes:
> > I think we should get rid of the module_pathname business, and
> > extensions' SQL files should just refer to the base file name and rely
> > on the dynamic library path to find the files. What would we lose if we
> > did that?
>
> Control over *which* mylib.so file gets loaded for a specific sql
> script. That's the whole namespace issue Stephen is worried about.
Indeed.
> If you're testing the new version of an extension before installing it
> properly, then you will have the current and the new versions of the
> .so, with the exact same name, at different places.
Hrm. This makes me wonder if there was a way we could check a .so
against the definition of what it "should" be in the control file. As
in, somehow include the extension name and version in the
PG_MODULE_MAGIC. That could be good on a couple of levels..
> Note that when using base file name only, then you could also have a
> clash with a dynamic library of the same name installed on the system,
> even if not made to be loaded by PostgreSQL.
Such as addressing this- perhaps with a GUC that says "only load .so's
that have a PG_MODULE_MAGIC and whose extension names/versions match
what is in the associated control file".
> Some extensions are using way too generic names. Hint: prefix.so.
Agreed.
Thanks!
Stephen