amcheck: Distinguish interrupted page deletion from corruption.
authorNoah Misch <noah@leadboat.com>
Mon, 30 Oct 2023 21:46:05 +0000 (14:46 -0700)
committerNoah Misch <noah@leadboat.com>
Mon, 30 Oct 2023 21:46:05 +0000 (14:46 -0700)
commit6ec9e9975eff5260651d84ed8bcfd8ecb08e5fbb
tree1b1bd6faa745f7fbfbcf735f45a1bbdaca771e3c
parent56b30e266eaa74f38bdda45067c9a5a63cd24c75
amcheck: Distinguish interrupted page deletion from corruption.

This prevents false-positive reports about "the first child of leftmost
target page is not leftmost of its level", "block %u is not leftmost"
and "left link/right link pair".  They appeared if amcheck ran before
VACUUM cleaned things, after a cluster exited recovery between the
first-stage and second-stage WAL records of a deletion.  Back-patch to
v11 (all supported versions).

Reviewed by Peter Geoghegan.

Discussion: https://postgr.es/m/20231005025232.c7.nmisch@google.com
contrib/amcheck/Makefile
contrib/amcheck/meson.build
contrib/amcheck/t/005_pitr.pl [new file with mode: 0644]
contrib/amcheck/verify_nbtree.c