postgresql/src/include/storage
Noah Misch 67f30c79a1 At end of recovery, reset all sinval-managed caches.
An inplace update's invalidation messages are part of its transaction's
commit record.  However, the update survives even if its transaction
aborts or we stop recovery before replaying its transaction commit.
After recovery, a backend that started in recovery could update the row
without incorporating the inplace update.  That could result in a table
with an index, yet relhasindex=f.  That is a source of index corruption.

This bulk invalidation avoids the functional consequences.  A future
change can fix the !RecoveryInProgress() scenario without changing the
WAL format.  Back-patch to v17 - v12 (all supported versions).  v18 will
instead add invalidations to WAL.

Discussion: https://postgr.es/m/20240618152349.7f.nmisch@google.com
2024-10-25 06:51:08 -07:00
..
.gitignore When trace_lwlocks is used, identify individual lwlocks by name. 2015-09-11 14:01:39 -04:00
backendid.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
barrier.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
block.h Fix bogus casting in BlockIdGetBlockNumber(). 2022-03-03 19:03:42 -05:00
buf.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
buf_internals.h Ensure we use the correct spelling of "ensure" 2023-11-10 00:18:02 +13:00
buffile.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
bufmgr.h Support PrefetchBuffer() in recovery. 2020-04-08 14:56:57 +12:00
bufpage.h Extend PageIsVerified() to handle more custom options 2020-11-02 10:41:23 +09:00
checksum.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
checksum_impl.h Fix page-level checksum calculation in checksum_impl.h 2020-03-06 08:15:29 +09:00
condition_variable.h Spelling adjustments 2020-06-07 15:06:51 +02:00
copydir.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
dsm.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
dsm_impl.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
fd.h Remove HAVE_WORKING_LINK 2020-03-11 11:23:04 +01:00
freespace.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
fsm_internals.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
indexfsm.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
ipc.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
item.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
itemid.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
itemptr.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
large_object.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
latch.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
lmgr.h Lock before setting relhassubclass on RELKIND_PARTITIONED_INDEX. 2024-06-27 19:21:12 -07:00
lock.h Lock before setting relhassubclass on RELKIND_PARTITIONED_INDEX. 2024-06-27 19:21:12 -07:00
lockdefs.h For inplace update durability, make heap_update() callers wait. 2024-09-24 15:25:24 -07:00
lwlock.h lwlock: Fix quadratic behavior with very long wait lists 2024-01-18 11:12:43 +09:00
md.h Support PrefetchBuffer() in recovery. 2020-04-08 14:56:57 +12:00
off.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pg_sema.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pg_shmem.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pmsignal.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
predicate.h Rename SLRU structures and associated LWLocks. 2020-05-15 14:28:25 -04:00
predicate_internals.h Rename assorted LWLock tranches. 2020-05-15 18:11:07 -04:00
proc.h lwlock: Fix quadratic behavior with very long wait lists 2024-01-18 11:12:43 +09:00
procarray.h Improve heuristics for compressing the KnownAssignedXids array. 2022-11-29 15:43:17 -05:00
proclist.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
proclist_types.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
procsignal.h Avoid potential spinlock in a signal handler as part of global barriers. 2020-06-17 12:47:13 -07:00
reinit.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
relfilenode.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
s_lock.h Allow use of __sync_lock_test_and_set for spinlocks on any machine. 2022-11-02 17:37:26 -04:00
sharedfileset.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
shm_mq.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
shm_toc.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
shmem.h Initial pgindent and pgperltidy run for v13. 2020-05-14 13:06:50 -04:00
sinval.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
sinvaladt.h At end of recovery, reset all sinval-managed caches. 2024-10-25 06:51:08 -07:00
smgr.h Remove smgrdounlink() in smgr.c from the code tree 2020-05-10 10:58:54 +09:00
spin.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
standby.h Fix MVCC bug with prepared xact with subxacts on standby 2024-06-27 21:08:55 +03:00
standbydefs.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00
sync.h Update copyrights for 2020 2020-01-01 12:21:45 -05:00