postgresql/contrib
Nathan Bossart 9eb6068fb6 Allow resetting unknown custom GUCs with reserved prefixes.
Currently, ALTER DATABASE/ROLE/SYSTEM RESET [ALL] with an unknown
custom GUC with a prefix reserved by MarkGUCPrefixReserved() errors
(unless a superuser runs a RESET ALL variant).  This is problematic
for cases such as an extension library upgrade that removes a GUC.
To fix, simply make sure the relevant code paths explicitly allow
it.  Note that we require superuser or privileges on the parameter
to reset it.  This is perhaps a bit more restrictive than is
necessary, but it's not clear whether further relaxing the
requirements is safe.

Oversight in commit 88103567cb.  The ALTER SYSTEM fix is dependent
on commit 2d870b4aef, which first appeared in v17.  Unfortunately,
back-patching that commit would introduce ABI breakage, and while
that breakage seems unlikely to bother anyone, it doesn't seem
worth the risk.  Hence, the ALTER SYSTEM part of this commit is
omitted on v15 and v16.

Reported-by: Mert Alev <mert@futo.org>
Reviewed-by: Laurenz Albe <laurenz.albe@cybertec.at>
Discussion: https://postgr.es/m/18964-ba09dea8c98fccd6%40postgresql.org
Backpatch-through: 15
2025-08-01 16:52:11 -05:00
..
amcheck amcheck: Improve error message for partitioned index target. 2025-07-14 20:05:10 +09:00
auth_delay
auto_explain Allow resetting unknown custom GUCs with reserved prefixes. 2025-08-01 16:52:11 -05:00
basebackup_to_shell meson: Increase minimum version to 0.57.2 2025-07-02 11:14:53 +02:00
basic_archive Remove translation marker from libpq-be-fe-helpers.h. 2025-07-22 22:08:36 +09:00
bloom
bool_plperl
btree_gin Add more cross-type comparisons to contrib/btree_gin. 2025-07-03 16:30:38 -04:00
btree_gist btree_gist: Merge the last two versions into version 1.8 2025-07-10 12:23:04 +09:00
citext
cube
dblink Run pgindent on the changes of the previous patch. 2025-07-25 16:36:44 -04:00
dict_int
dict_xsyn
earthdistance
file_fdw
fuzzystrmatch
hstore
hstore_plperl
hstore_plpython
intagg
intarray
isn Use pg_ascii_tolower()/pg_ascii_toupper() where appropriate. 2025-07-01 07:24:23 -07:00
jsonb_plperl
jsonb_plpython
lo
ltree
ltree_plpython
oid2name
pageinspect Standardize LSN formatting by zero padding 2025-07-07 13:57:43 +02:00
passwordcheck
pg_buffercache Silence valgrind about pg_numa_touch_mem_if_required 2025-07-01 12:32:23 +02:00
pg_freespacemap
pg_logicalinspect
pg_overexplain
pg_prewarm
pg_stat_statements pg_stat_statements: Add counters for generic and custom plans 2025-07-31 11:37:37 +09:00
pg_surgery
pg_trgm
pg_visibility
pg_walinspect Standardize LSN formatting by zero padding 2025-07-07 13:57:43 +02:00
pgcrypto
pgrowlocks
pgstattuple
postgres_fdw Split up pgfdw_report_error so that we can mark it pg_noreturn. 2025-07-29 10:35:01 -04:00
seg
sepgsql
spi Use pg_ascii_tolower()/pg_ascii_toupper() where appropriate. 2025-07-01 07:24:23 -07:00
sslinfo
start-scripts
tablefunc
tcn
test_decoding Fix re-distributing previously distributed invalidation messages during logical decoding. 2025-06-16 17:36:01 -07:00
tsm_system_rows
tsm_system_time
unaccent
uuid-ossp
vacuumlo
xml2 Fix up misuse of "volatile" in contrib/xml2. 2025-07-08 17:00:34 -04:00
contrib-global.mk
Makefile
meson.build
README

The PostgreSQL contrib tree
---------------------------

This subtree contains porting tools, analysis utilities, and plug-in
features that are not part of the core PostgreSQL system, mainly
because they address a limited audience or are too experimental to be
part of the main source tree.  This does not preclude their
usefulness.

User documentation for each module appears in the main SGML
documentation.

When building from the source distribution, these modules are not
built automatically, unless you build the "world" target.  You can
also build and install them all by running "make all" and "make
install" in this directory; or to build and install just one selected
module, do the same in that module's subdirectory.

Some directories supply new user-defined functions, operators, or
types.  To make use of one of these modules, after you have installed
the code you need to register the new SQL objects in the database
system by executing a CREATE EXTENSION command.  In a fresh database,
you can simply do

    CREATE EXTENSION module_name;

See the PostgreSQL documentation for more information about this
procedure.