postgresql/src
Noah Misch f4af4515bb 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:18 -08:00
..
backend At update of non-LP_NORMAL TID, fail instead of corrupting page header. 2025-01-25 11:28:18 -08:00
bin Fix off_t overflow in pg_basebackup on Windows. 2025-01-09 16:05:01 +13:00
common meson: Export all libcommon functions in Windows builds 2024-12-25 18:14:26 +02:00
fe_utils Prevent mis-encoding of "trailing junk after numeric literal" errors. 2024-09-05 12:42:33 -04:00
include At update of non-LP_NORMAL TID, fail instead of corrupting page header. 2025-01-25 11:28:18 -08:00
interfaces Test ECPG decadd(), decdiv(), decmul(), and decsub() for risnull() input. 2025-01-25 11:28:18 -08:00
makefiles Optimize pg_popcount() with AVX-512 instructions. 2024-04-06 21:56:23 -05:00
pl Repair memory leaks in plpython. 2025-01-11 11:45:56 -05:00
port Avoid symbol collisions between pqsignal.c and legacy-pqsignal.c. 2025-01-14 18:50:24 -05:00
template Remove AIX support 2024-02-28 15:17:23 +04:00
test At update of non-LP_NORMAL TID, fail instead of corrupting page header. 2025-01-25 11:28:18 -08:00
timezone Update time zone data files to tzdata release 2025a. 2025-01-20 16:49:15 -05:00
tools Fix catcache invalidation of a list entry that's being built 2025-01-14 14:35:11 +02:00
tutorial Update copyright for 2024 2024-01-03 20:49:05 -05:00
.gitignore
DEVELOPERS
Makefile Remove distprep 2023-11-06 15:18:04 +01:00
Makefile.global.in Update Unicode data to CLDR 45 2024-04-22 09:16:33 +02:00
Makefile.shlib Remove AIX support 2024-02-28 15:17:23 +04:00
meson.build Update copyright for 2024 2024-01-03 20:49:05 -05:00
nls-global.mk Remove distprep 2023-11-06 15:18:04 +01:00