Re: extension_control_path - Mailing list pgsql-hackers

From Stephen Frost
Subject Re: extension_control_path
Date
Msg-id 20140228132753.GD2921@tamriel.snowman.net
Whole thread Raw
In response to Re: extension_control_path  (Dimitri Fontaine <dimitri@2ndQuadrant.fr>)
List pgsql-hackers
* 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

pgsql-hackers by date:

Previous
From: Ali Piroozi
Date:
Subject: Equivalence Rules
Next
From: Stephen Frost
Date:
Subject: Re: extension_control_path