RE: Ability to reference other extensions by schema in extension scripts
Regina Obe <lr@pcorp.us>
From: "Regina Obe" <lr@pcorp.us>
To: "'Tom Lane'" <tgl@sss.pgh.pa.us>, <strk@kbt.io>
Cc: <pgsql-hackers@postgresql.org>
Date: 2022-11-23T04:24:19Z
Lists: pgsql-hackers
Attachments
- 0001-Allow-use-of-extschema-reqextname-to-reference.patch (application/octet-stream)
>
> "Regina Obe" <lr@pcorp.us> writes:
> >> I have a distinct sense of deja vu here. I think this idea, or
> >> something isomorphic to it, was previously discussed with some other
> syntax details.
>
> > I found the old discussion I recalled having and Stephen had suggested
> > using @extschema{'postgis'}@ On this thread --
> > https://www.postgresql.org/message-
> id/20160425232251.GR10850@tamriel.s
> > nowman.net
> > Is that the one you remember?
>
> Hmmm ... no, ISTM it was considerably more recent than that.
> [ ...digs... ] Here we go, it was in the discussion around converting
contrib SQL
> functions to new-style:
>
> https://www.postgresql.org/message-
> id/flat/3395418.1618352794%40sss.pgh.pa.us
>
> There are a few different ideas bandied around in there.
> Personally I still like the @extschema:extensionname@ option the best,
> though.
>
> regards, tom lane
Here is first version of my patch using the @extschema:extensionname@ syntax
you proposed.
This patch includes:
1) Changes to replace references of @extschema:extensionname@ with the
schema of the required extension
2) Documentation for the feature
3) Tests for the feature.
There is one issue I thought about that is not addressed by this.
If an extension is required by another extension and that required extension
schema is referenced in the extension scripts using the
@extschema:extensionname@ syntax, then ideally we should prevent the
required extension from being relocatable. This would prevent a user from
accidentally moving the required extension, thus breaking the dependent
extensions.
I didn't add that feature cause I wasn't sure if it was overstepping the
bounds of what should be done, or if we leave it up to the user to just know
better.
Thanks,
Regina
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add @extschema:name@ and no_relocate options to extensions.
- 72a5b1fc8804 16.0 landed
-
pkg-config Requires.private entries should be comma-separated
- 4ef1be5a0b67 16.0 cited
-
Fix logic buglets in pg_dump's flagInhAttrs().
- 128dd9f9eca0 16.0 cited