Re: BUG #18964: `ALTER DATABASE ... RESET ...` fails to reset extension parameters that no longer exist
Laurenz Albe <laurenz.albe@cybertec.at>
From: Laurenz Albe <laurenz.albe@cybertec.at>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, mert@futo.org, pgsql-bugs@lists.postgresql.org
Date: 2025-07-24T21:06:57Z
Lists: pgsql-bugs
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Allow resetting unknown custom GUCs with reserved prefixes.
- f79ca73d75cb 15.14 landed
- b998ce3272ab 16.10 landed
- 9eb6068fb64c 19 (unreleased) landed
- 7b9674a8b180 18.0 landed
- 39ff056365e4 17.6 landed
-
Allow ALTER SYSTEM to set unrecognized custom GUCs.
- 2d870b4aeff1 17.0 cited
-
Disallow setting bogus GUCs within an extension's reserved namespace.
- 88103567cb8f 15.0 cited
On Thu, 2025-07-24 at 11:30 -0500, Nathan Bossart wrote: > On Tue, Jul 22, 2025 at 04:27:24AM +0200, Laurenz Albe wrote: > > > There is still one piece missing in my opinion: > > > > ALTER SYSTEM RESET testext.swap_limit; > > ERROR: invalid configuration parameter name "testext.swap_limit" > > DETAIL: "testext" is a reserved prefix. > > > > I think that this case should work like the others. > > Good catch. This should be fixed in v3. Check. > > I'd like to see regression tests for this, but I am not sure how > > to best devise them. > > One idea would be to stick them into the regression tests of some > > contrib module, even though it is not the perfect place. > > Added in v3. Great! The regression test works fine on my Linux machine. > --- /dev/null > +++ b/contrib/auto_explain/sql/alter_reset.sql > [...] > +SELECT current_database() AS datname \gset > +CREATE ROLE regress_ae_role; > + > +ALTER DATABASE :datname SET auto_explain.bogus = 1; > +ALTER ROLE regress_ae_role SET auto_explain.bogus = 1; > +ALTER ROLE regress_ae_role IN DATABASE :datname SET auto_explain.bogus = 1; > +ALTER SYSTEM SET auto_explain.bogus = 1; > + > +LOAD 'auto_explain'; > + > +ALTER DATABASE :datname RESET auto_explain.bogus; > +ALTER ROLE regress_ae_role RESET auto_explain.bogus; > +ALTER ROLE regress_ae_role IN DATABASE :datname RESET auto_explain.bogus; That is perhaps a rediculous quibble, but shouldn't that be :"datname"? I guess the regression test database will always have a proper name... Anyway, I'll mark the patch as "ready for committer". Yours, Laurenz Albe