Fix amcheck child check pg_upgrade bug.
authorPeter Geoghegan <pg@bowt.ie>
Wed, 16 Sep 2020 17:42:30 +0000 (10:42 -0700)
committerPeter Geoghegan <pg@bowt.ie>
Wed, 16 Sep 2020 17:42:30 +0000 (10:42 -0700)
commitaac80bfcddf7df3fbd1eb73e8a386115d922c714
treeac0b52df9a0d93d6f9920b3bf5f5d4e9eb9ecb5c
parente5fac1cb1941e4adbcb88206f914e2035e5cccf2
Fix amcheck child check pg_upgrade bug.

Commit d114cc53 overlooked the fact that pg_upgrade'd B-Tree indexes
have leaf page high keys whose offset numbers do not match the one from
the copy of the tuple one level up (the copy stored with a downlink for
leaf page's right sibling page).  This led to false positive reports of
corruption from bt_index_parent_check() when it was called to verify a
pg_upgrade'd index.

To fix, skip comparing the offset number on pg_upgrade'd B-Tree indexes.

Author: Anastasia Lubennikova <a.lubennikova@postgrespro.ru>
Author: Peter Geoghegan <pg@bowt.ie>
Reported-By: Andrew Bille <andrewbille@gmail.com>
Diagnosed-By: Anastasia Lubennikova <a.lubennikova@postgrespro.ru>
Bug: #16619
Discussion: https://postgr.es/m/16619-aaba10f83fdc1c3c@postgresql.org
Backpatch: 13-, where child check was enhanced.
contrib/amcheck/verify_nbtree.c