From: Peter Geoghegan Date: Wed, 30 Oct 2024 19:53:26 +0000 (-0400) Subject: nbtree: assert no scheduled primscan between pages. X-Git-Tag: REL_18_BETA1~1588 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=492e6b54c604c39ecf5ebc812849185b20c4b1b6;p=thirdparty%2Fpostgresql.git nbtree: assert no scheduled primscan between pages. Follow-up to bugfix commit 763d65ae. Technically this new assertion is redundant with the assertion recently added to _bt_readpage by that same commit, but it seems like a good idea to have both. The new assertion makes it clear that we expect to call _bt_readnextpage when there's another primitive index scan scheduled, though only when needed as the final step of ending the current primitive scan. --- diff --git a/src/backend/access/nbtree/nbtsearch.c b/src/backend/access/nbtree/nbtsearch.c index b082cc80f6c..e718668ed69 100644 --- a/src/backend/access/nbtree/nbtsearch.c +++ b/src/backend/access/nbtree/nbtsearch.c @@ -2272,6 +2272,8 @@ _bt_readnextpage(IndexScanDesc scan, BlockNumber blkno, return false; } + Assert(!so->needPrimScan); + if (ScanDirectionIsForward(dir)) { /* read blkno, but check for interrupts first */