postgres.git / summary / log / commit / refs

commit    a4cb21ea9cd759761006b62f8247fd4dabce01e6
Author:   Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date:     Tue Dec 02 19:10:51 2025 +0000

    Fix amcheck's handling of incomplete root splits in B-tree
    
    When the root page is being split, it's normal that root page
    according to the metapage is not marked BTP_ROOT. Fix bogus error in
    amcheck about that case.
    
    Reviewed-by: Peter Geoghegan <pg@bowt.ie>
    Discussion: https://www.postgresql.org/message-id/abd65090-5336-42cc-b768-2bdd66738404@iki.fi
    Backpatch-through: 14


contrib/amcheck/verify_nbtree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/amcheck/verify_nbtree.c b/contrib/amcheck/verify_nbtree.c index c80a57e0bf5..b36a081808d 100644 --- a/contrib/amcheck/verify_nbtree.c +++ b/contrib/amcheck/verify_nbtree.c @@ -784,7 +784,7 @@ bt_check_level_from_leftmost(BtreeCheckState *state, BtreeLevel level) errmsg("block %u is not leftmost in index \"%s\"", current, RelationGetRelationName(state->rel)))); - if (level.istruerootlevel && !P_ISROOT(opaque)) + if (level.istruerootlevel && (!P_ISROOT(opaque) && !P_INCOMPLETE_SPLIT(opaque))) ereport(ERROR, (errcode(ERRCODE_INDEX_CORRUPTED), errmsg("block %u is not true root in index \"%s\"", [parent: 2d5b97b8c654]