postgresql/src/test/modules
Tom Lane 2d870b4aef 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
2023-10-21 13:35:19 -04:00
..
brin Show empty BRIN ranges in brin_page_items 2023-05-19 02:00:21 +02:00
commit_ts Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
delay_execution meson: Prevent installation of test files during main install 2023-03-03 07:45:52 +01:00
dummy_index_am Ignore BRIN indexes when checking for HOT updates 2023-03-20 11:02:42 +01:00
dummy_seclabel Improve several permission-related error messages. 2023-03-17 10:33:09 +01:00
ldap_password_func Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
libpq_pipeline Fix incorrect format placeholder 2023-10-03 08:30:20 +02:00
plsample meson: Prevent installation of test files during main install 2023-03-03 07:45:52 +01:00
spgist_name_ops meson: Prevent installation of test files during main install 2023-03-03 07:45:52 +01:00
ssl_passphrase_callback Convert encrypted SSL test keys to PKCS#8 format 2023-08-28 07:37:43 +02:00
test_bloomfilter meson: Prevent installation of test files during main install 2023-03-03 07:45:52 +01:00
test_copy_callbacks meson: Prevent installation of test files during main install 2023-03-03 07:45:52 +01:00
test_custom_rmgrs Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
test_ddl_deparse Catalog not-null constraints 2023-08-25 13:31:24 +02:00
test_extensions Reject substituting extension schemas or owners matching ["$'\]. 2023-08-07 06:05:56 -07:00
test_ginpostinglist meson: Prevent installation of test files during main install 2023-03-03 07:45:52 +01:00
test_integerset meson: Prevent installation of test files during main install 2023-03-03 07:45:52 +01:00
test_lfind meson: Prevent installation of test files during main install 2023-03-03 07:45:52 +01:00
test_misc Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
test_oat_hooks Add OAT hook calls for more subcommands of ALTER TABLE 2023-08-17 08:54:17 +09:00
test_parser meson: Prevent installation of test files during main install 2023-03-03 07:45:52 +01:00
test_pg_dump Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
test_predtest meson: Prevent installation of test files during main install 2023-03-03 07:45:52 +01:00
test_rbtree meson: Prevent installation of test files during main install 2023-03-03 07:45:52 +01:00
test_regex Redesign interrupt/cancel API for regex engine. 2023-04-08 22:10:39 +12:00
test_rls_hooks meson: Prevent installation of test files during main install 2023-03-03 07:45:52 +01:00
test_shm_mq test_shm_mq: Replace WAIT_EVENT_EXTENSION with custom wait events 2023-10-04 17:12:25 +09:00
test_slru Remove unused global variable 2023-04-21 11:41:58 +12:00
unsafe_tests Allow ALTER SYSTEM to set unrecognized custom GUCs. 2023-10-21 13:35:19 -04:00
worker_spi worker_spi: Fix test failure with BGWORKER_BYPASS_ROLELOGINCHECK 2023-10-16 13:45:39 +09:00
Makefile Remove the "snapshot too old" feature. 2023-09-05 19:53:43 +12:00
meson.build Remove the "snapshot too old" feature. 2023-09-05 19:53:43 +12:00
README Add an enforcement mechanism for global object names in regression tests. 2019-06-29 11:34:00 -04:00

Test extensions and libraries
=============================

src/test/modules contains PostgreSQL extensions that are primarily or entirely
intended for testing PostgreSQL and/or to serve as example code. The extensions
here aren't intended to be installed in a production server and aren't suitable
for "real work".

Furthermore, while you can do "make install" and "make installcheck" in
this directory or its children, it is NOT ADVISABLE to do so with a server
containing valuable data.  Some of these tests may have undesirable
side-effects on roles or other global objects within the tested server.
"make installcheck-world" at the top level does not recurse into this
directory.

Most extensions have their own pg_regress tests or isolationtester specs. Some
are also used by tests elsewhere in the tree.

If you're adding new hooks or other functionality exposed as C-level API this
is where to add the tests for it.