Обсуждение: 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_16_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/e4afd7153bd80404bffc4d17b37451d7317ae53e 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(-)