postgresql/src/test/modules
Noah Misch d28cd3e7b2 At update of non-LP_NORMAL TID, fail instead of corrupting page header.
The right mix of DDL and VACUUM could corrupt a catalog page header such
that PageIsVerified() durably fails, requiring a restore from backup.
This affects only catalogs that both have a syscache and have DDL code
that uses syscache tuples to construct updates.  One of the test
permutations shows a variant not yet fixed.

This makes !TransactionIdIsValid(TM_FailureData.xmax) possible with
TM_Deleted.  I think core and PGXN are indifferent to that.

Per bug #17821 from Alexander Lakhin.  Back-patch to v13 (all supported
versions).  The test case is v17+, since it uses INJECTION_POINT.

Discussion: https://postgr.es/m/17821-dd8c334263399284@postgresql.org
2025-01-25 11:28:14 -08:00
..
brin Update copyright for 2025 2025-01-01 11:21:55 -05:00
commit_ts Update copyright for 2025 2025-01-01 11:21:55 -05:00
delay_execution Update copyright for 2025 2025-01-01 11:21:55 -05:00
dummy_index_am Update copyright for 2025 2025-01-01 11:21:55 -05:00
dummy_seclabel Update copyright for 2025 2025-01-01 11:21:55 -05:00
gin Update copyright for 2025 2025-01-01 11:21:55 -05:00
injection_points At update of non-LP_NORMAL TID, fail instead of corrupting page header. 2025-01-25 11:28:14 -08:00
ldap_password_func Update copyright for 2025 2025-01-01 11:21:55 -05:00
libpq_pipeline Update copyright for 2025 2025-01-01 11:21:55 -05:00
plsample Update copyright for 2025 2025-01-01 11:21:55 -05:00
spgist_name_ops Update copyright for 2025 2025-01-01 11:21:55 -05:00
ssl_passphrase_callback Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_bloomfilter Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_copy_callbacks Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_custom_rmgrs Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_ddl_deparse Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_dsa Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_dsm_registry Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_extensions Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_ginpostinglist Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_integerset Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_json_parser Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_lfind Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_misc Fix catcache invalidation of a list entry that's being built 2025-01-14 14:28:49 +02:00
test_oat_hooks Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_parser Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_pg_dump Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_predtest Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_radixtree Always use the caller-provided context for radix tree leaves 2025-01-06 13:26:02 +07:00
test_rbtree Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_regex Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_resowner Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_rls_hooks Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_shm_mq Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_slru Update copyright for 2025 2025-01-01 11:21:55 -05:00
test_tidstore Update copyright for 2025 2025-01-01 11:21:55 -05:00
typcache Update copyright for 2025 2025-01-01 11:21:55 -05:00
unsafe_tests Update copyright for 2025 2025-01-01 11:21:55 -05:00
worker_spi Update copyright for 2025 2025-01-01 11:21:55 -05:00
xid_wraparound Update copyright for 2025 2025-01-01 11:21:55 -05:00
Makefile Avoid looping over all type cache entries in TypeCacheRelCallback() 2024-10-24 14:35:52 +03:00
meson.build Update copyright for 2025 2025-01-01 11:21:55 -05: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.