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>
Cc: "'Gregory Stark \(as CFM\)'" <stark.cfm@gmail.com>, "'Sandro Santilli'" <strk@kbt.io>, <pgsql-hackers@lists.postgresql.org>, "'Regina Obe'" <r@pcorp.us>
Date: 2023-03-10T22:52:40Z
Lists: pgsql-hackers
> "Regina Obe" <lr@pcorp.us> writes:
> >> requires = 'extfoo, extbar'
> >> no_relocate = 'extfoo'
> 
> > So when no_relocate is specified, where would that live?
> 
> In the control file.
> 
> > Would I mark the extfoo as not relocatable on CREATE / ALTER of said
> > extension?
> > Or add an extra field to pg_extension
> 
> We don't record dependent extensions in pg_extension now, so that doesn't
> seem like it would fit well.  I was envisioning that ALTER EXTENSION SET
> SCHEMA would do something along the lines of
> 
> (1) scrape the list of dependent extensions out of pg_depend
> (2) open and parse each of their control files
> (3) fail if any of their control files mentions the target one in
>     no_relocate.
> 
> Admittedly, this'd be a bit slow, but I doubt that ALTER EXTENSION SET
> SCHEMA is a performance bottleneck for anybody.
> 

Okay I'll move ahead with this approach.

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 →
  1. Add @extschema:name@ and no_relocate options to extensions.

  2. pkg-config Requires.private entries should be comma-separated

  3. Fix logic buglets in pg_dump's flagInhAttrs().