From: | Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at> |
---|---|
To: | Narek Galstyan <narekg(at)berkeley(dot)edu>, pgsql-general(at)lists(dot)postgresql(dot)org |
Cc: | narek(at)lantern(dot)dev |
Subject: | Re: Reserving GUC prefixes from a non-preloaded DB extension is not always enforced |
Date: | 2024-06-14 07:44:57 |
Message-ID: | 4c63472a57a2b5843cbae3e4020216b433004861.camel@cybertec.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Thu, 2024-06-13 at 12:26 -0700, Narek Galstyan wrote:
> I am an extension developer. I use `MarkGUCPrefixReserved` to reserve GUC prefixes,
> which my extension uses to help avoid accidentally misspelled config-file entries.
>
> However, since the reservation happens in `_PG_init()` and `_PG_init()` is not
> called until the first use of an API exposed by my extension, misspelled config-file
> entries that get executed before the extension is loaded will not throw an error.
>
> I'd expect GUC variables reserved by an extension to live more permanently in
> Postgres catalogs (e.g., in pg_settings).
> So, even when the extension binary is not loaded, Postgres would know which prefixes
> are reserved and which GUC settings must be allowed (similar to how Postgres knows
> in pg_extension which extensions are enabled, even when the corresponding extension
> binary has not been loaded).
>
> > 1. Would you consider the proposed behavior an improvement?
Not really.
If I wanted to avoid that problem, I'd put the extension in "shared_preload_libraries",
so that _PG_init() is executed when the server starts.
Yours,
Laurenz Albe
From | Date | Subject | |
---|---|---|---|
Next Message | Ron Johnson | 2024-06-14 09:17:36 | Re: Configure autovacuum |
Previous Message | Laurenz Albe | 2024-06-14 07:41:02 | Re: Configure autovacuum |