aboutsummaryrefslogtreecommitdiff
path: root/src/backend/storage/file/reinit.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2023-10-21 13:35:19 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2023-10-21 13:35:19 -0400
commit2d870b4aeff174ea3b8a0837bc2065c820fb43e2 (patch)
treee1b9019542be5d4a9fd69e21ed1158ae80c3604d /src/backend/storage/file/reinit.c
parent36a14afc076024ba48c399f2af2d4cd1b2c39348 (diff)
downloadpostgresql-2d870b4aeff174ea3b8a0837bc2065c820fb43e2.tar.gz
postgresql-2d870b4aeff174ea3b8a0837bc2065c820fb43e2.zip
Allow ALTER SYSTEM to set unrecognized custom GUCs.
Previously, ALTER SYSTEM failed if the target GUC wasn't present in the session's GUC hashtable. That is a reasonable behavior for core (single-part) GUC names, and for custom GUCs for which we have loaded an extension that's reserved the prefix. But it's unnecessarily restrictive otherwise, and it also causes inconsistent behavior: you can "ALTER SYSTEM SET foo.bar" only if you did "SET foo.bar" earlier in the session. That's fairly silly. Hence, refactor things so that we can execute ALTER SYSTEM even if the variable doesn't have a GUC hashtable entry, as long as the name meets the custom-variable naming requirements and does not have a reserved prefix. (It's safe to do this even if the variable belongs to an extension we currently don't have loaded. A bad value will at worst cause a WARNING when the extension does get loaded.) Also, adjust GRANT ON PARAMETER to have the same opinions about whether to allow an unrecognized GUC name, and to throw the same errors if not (it previously used a one-size-fits-all message for several distinguishable conditions). By default, only a superuser will be allowed to do ALTER SYSTEM SET on an unrecognized name, but it's possible to GRANT the ability to do it. Patch by me, pursuant to a documentation complaint from Gavin Panella. Arguably this is a bug fix, but given the lack of other complaints I'll refrain from back-patching. Discussion: https://postgr.es/m/2617358.1697501956@sss.pgh.pa.us Discussion: https://postgr.es/m/169746329791.169914.16613647309012285391@wrigleys.postgresql.org
Diffstat (limited to 'src/backend/storage/file/reinit.c')
0 files changed, 0 insertions, 0 deletions