nbtree page deletion: Add leaftopparent assertion.
authorPeter Geoghegan <pg@bowt.ie>
Tue, 2 Mar 2021 22:06:07 +0000 (14:06 -0800)
committerPeter Geoghegan <pg@bowt.ie>
Tue, 2 Mar 2021 22:06:07 +0000 (14:06 -0800)
Add documenting assertion.  This makes it easier to follow how we
maintain the top parent link in target subtree's half-dead/leaf level
page.

src/backend/access/nbtree/nbtpage.c
src/backend/access/nbtree/nbtxlog.c

index 84ea7eac58e73910b8e12a692027a0fc61631451..c09e492a5f33f70cde87729417d28c72ef9f88f4 100644 (file)
@@ -2458,6 +2458,9 @@ _bt_unlink_halfdead_page(Relation rel, Buffer leafbuf, BlockNumber scanblkno,
            leaftopparent = InvalidBlockNumber;
    }
 
+   /* No leaftopparent for level 0 (leaf page) or level 1 target */
+   Assert(!BlockNumberIsValid(leaftopparent) || targetlevel > 1);
+
    /*
     * And next write-lock the (current) right sibling.
     */
index 8b7c143db485674d6c8a9e6cde5a0cfd33edd2c4..990f5d0f521d9aad866518bf03b17225a4fe628f 100644 (file)
@@ -818,7 +818,7 @@ btree_xlog_unlink_page(uint8 info, XLogReaderState *record)
    safexid = xlrec->safexid;
 
    /* No leaftopparent for level 0 (leaf page) or level 1 target */
-   Assert(xlrec->leaftopparent == InvalidBlockNumber || level > 1);
+   Assert(!BlockNumberIsValid(xlrec->leaftopparent) || level > 1);
 
    /*
     * In normal operation, we would lock all the pages this WAL record