postgresql/src/test/modules
Tom Lane 88103567cb Disallow setting bogus GUCs within an extension's reserved namespace.
Commit 75d22069e tried to throw a warning for setting a custom GUC whose
prefix belongs to a previously-loaded extension, if there is no such GUC
defined by the extension.  But that caused unstable behavior with
parallel workers, because workers don't necessarily load extensions and
GUCs in the same order their leader did.  To make that work safely, we
have to completely disallow the case.  We now actually remove any such
GUCs at the time of initial extension load, and then throw an error not
just a warning if you try to add one later.  While this might create a
compatibility issue for a few people, the improvement in error-detection
capability seems worth it; it's hard to believe that there's any good
use-case for choosing such GUC names.

This also un-reverts 5609cc01c (Rename EmitWarningsOnPlaceholders() to
MarkGUCPrefixReserved()), since that function's old name is now even
more of a misnomer.

Florin Irion and Tom Lane

Discussion: https://postgr.es/m/1902182.1640711215@sss.pgh.pa.us
2022-02-21 14:10:43 -05:00
..
brin Replace Test::More plans with done_testing 2022-02-11 20:54:44 +01:00
commit_ts Replace Test::More plans with done_testing 2022-02-11 20:54:44 +01:00
delay_execution Disallow setting bogus GUCs within an extension's reserved namespace. 2022-02-21 14:10:43 -05:00
dummy_index_am Update copyright for 2022 2022-01-07 19:04:57 -05:00
dummy_seclabel Update copyright for 2022 2022-01-07 19:04:57 -05:00
libpq_pipeline Update copyright for 2022 2022-01-07 19:04:57 -05:00
plsample Update copyright for 2022 2022-01-07 19:04:57 -05:00
snapshot_too_old Improve display of query results in isolation tests. 2021-06-23 11:13:00 -04:00
spgist_name_ops pg_upgrade: Preserve relfilenodes and tablespace OIDs. 2022-01-17 13:40:27 -05:00
ssl_passphrase_callback Disallow setting bogus GUCs within an extension's reserved namespace. 2022-02-21 14:10:43 -05:00
test_bloomfilter Update copyright for 2022 2022-01-07 19:04:57 -05:00
test_ddl_deparse Update copyright for 2022 2022-01-07 19:04:57 -05:00
test_extensions Fix use-after-free bug with event triggers in an extension script 2020-09-15 21:03:14 -03:00
test_ginpostinglist Update copyright for 2022 2022-01-07 19:04:57 -05:00
test_integerset Update copyright for 2022 2022-01-07 19:04:57 -05:00
test_misc Remove PostgreSQL::Test::Utils::perl2host completely 2022-02-20 11:51:45 -05:00
test_parser Update copyright for 2022 2022-01-07 19:04:57 -05:00
test_pg_dump Replace Test::More plans with done_testing 2022-02-11 20:54:44 +01:00
test_predtest Update copyright for 2022 2022-01-07 19:04:57 -05:00
test_rbtree Update copyright for 2022 2022-01-07 19:04:57 -05:00
test_regex Update copyright for 2022 2022-01-07 19:04:57 -05:00
test_rls_hooks Update copyright for 2022 2022-01-07 19:04:57 -05:00
test_shm_mq Update copyright for 2022 2022-01-07 19:04:57 -05:00
unsafe_tests Fix various typos, grammar and code style in comments and docs 2022-01-25 09:40:04 +09:00
worker_spi Disallow setting bogus GUCs within an extension's reserved namespace. 2022-02-21 14:10:43 -05:00
Makefile Fix confusion in SP-GiST between attribute type and leaf storage type. 2021-04-04 14:28:57 -04:00
README Add an enforcement mechanism for global object names in regression tests. 2019-06-29 11:34:00 -04:00

README

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.