Обсуждение: pgsql: Cope with inplace update making catcache stale during TOAST fetc
Cope with inplace update making catcache stale during TOAST fetch. This extends ad98fb14226ae6456fbaed7990ee7591cbe5efd2 to invals of inplace updates. Trouble requires an inplace update of a catalog having a TOAST table, so only pg_database was at risk. (The other catalog on which core code performs inplace updates, pg_class, has no TOAST table.) Trouble would require something like the inplace-inval.spec test. Consider GRANT ... ON DATABASE fetching a stale row from cache and discarding a datfrozenxid update that vac_truncate_clog() has already relied upon. Back-patch to v12 (all supported versions). Reviewed (in an earlier version) by Robert Haas. Discussion: https://postgr.es/m/20240114201411.d0@rfd.leadboat.com Discussion: https://postgr.es/m/20240512232923.aa.nmisch@google.com Branch ------ REL_12_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/11f3815d6af840dc9d557cc680ec477931a6825b Modified Files -------------- src/backend/catalog/catalog.c | 21 ++++++++++++++++++ src/backend/utils/cache/catcache.c | 44 +++++++++++++++++++++++++++++++++++--- src/include/catalog/catalog.h | 2 ++ 3 files changed, 64 insertions(+), 3 deletions(-)