summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/amcheck/verify_nbtree.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/contrib/amcheck/verify_nbtree.c b/contrib/amcheck/verify_nbtree.c
index 4347f9594c9..34990c5cea3 100644
--- a/contrib/amcheck/verify_nbtree.c
+++ b/contrib/amcheck/verify_nbtree.c
@@ -1901,17 +1901,19 @@ bt_target_page_check(BtreeCheckState *state)
if (P_IGNORE(topaque))
{
- if (unlikely(!P_ISLEAF(topaque)))
- ereport(ERROR,
- (errcode(ERRCODE_INDEX_CORRUPTED),
- errmsg("right block of leaf block is non-leaf for index \"%s\"",
- RelationGetRelationName(state->rel)),
- errdetail_internal("Block=%u page lsn=%X/%X.",
- state->targetblock,
- LSN_FORMAT_ARGS(state->targetlsn))));
- else
- break;
+ pfree(rightpage);
+ break;
}
+
+ if (unlikely(!P_ISLEAF(topaque)))
+ ereport(ERROR,
+ (errcode(ERRCODE_INDEX_CORRUPTED),
+ errmsg("right block of leaf block is non-leaf for index \"%s\"",
+ RelationGetRelationName(state->rel)),
+ errdetail_internal("Block=%u page lsn=%X/%X.",
+ state->targetblock,
+ LSN_FORMAT_ARGS(state->targetlsn))));
+
itemid = PageGetItemIdCareful(state, rightblock_number,
rightpage,
rightfirstoffset);