Fix _bt_readnextpage half-dead leftmost page assert. Backwards scans that reach a half-dead leftmost leaf page step over the page without calling _bt_readpage. This happens whenever the most recent _bt_lock_and_validate_left call returned a half-dead leftmost page. An assertion within _bt_readnextpage failed to consider this, causing it to fail spuriously.
To fix, make the assertion accept the case where currPage doesn't match lastcurrblkno as long as blkno is P_NONE (it's always P_NONE when the last leaf page examined by _bt_readnextpage is either the leftmost or rightmost page). Oversight in commit caca6d8d27. Author: Peter Geoghegan <[email protected]> Backpatch-through: 18 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/931ce42ef9c891b5657d395abf3357a1db4a8974 Modified Files -------------- src/backend/access/nbtree/nbtsearch.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
