Hi Jakub, On 5 Oct 2026, Jakub Wartak wrote: > still follows LP_REDIRECT/HOT
The two-step fetch reaches the visible tuple behind both an unpruned HOT chain and LP_REDIRECT. Our registered MVCC snapshot prevents that tuple from being pruned between the calls. The comparison keeps the original indexed TID. I added an explicit error if the second fetch fails. The new tests exercise Bloom misses by changing an indexed expression after a HOT update. Replacing the chain lookup with a direct fetch of the original TID makes the checker miss those changed keys. PFA v7 with your API fixup folded into 0001 and the old 0002/0003 merged. On the cached-size question, smgrnblocks_cached() uses InRecovery. I left the cache alone and checked a persistent standby connection across replay of heap/index extension. There are now LP_UNUSED and out-of-range offset tests, plus an LP_DEAD case which must pass. With --with-segsize-blocks=4, the lost-segment test detects plain and posting-list references both with and without indexallkeysmatch. The docs now state the cost of the additional full heap scan and describe the unconditional EOF check separately. The existing TOAST and short varlena regression cases now run with the new check enabled. Thank you! Best regards, Andrey Borodin.
v7-0001-amcheck-add-indexallkeysmatch-verification-for-B-.patch
Description: Binary data
v7-0002-amcheck-detect-dangling-B-Tree-references-to-heap.patch
Description: Binary data
v7-0003-doc-describe-indexallkeysmatch-verification.patch
Description: Binary data
