1
0
mirror of https://github.com/postgres/postgres.git synced 2025-12-19 17:02:53 +03:00

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
This commit is contained in:
Heikki Linnakangas
2025-12-02 21:10:51 +02:00
parent 4d288e33b9
commit f2a6df9fd5

View File

@@ -786,7 +786,7 @@ bt_check_level_from_leftmost(BtreeCheckState *state, BtreeLevel level)
errmsg("block %u is not leftmost in index \"%s\"", errmsg("block %u is not leftmost in index \"%s\"",
current, RelationGetRelationName(state->rel)))); current, RelationGetRelationName(state->rel))));
if (level.istruerootlevel && !P_ISROOT(opaque)) if (level.istruerootlevel && (!P_ISROOT(opaque) && !P_INCOMPLETE_SPLIT(opaque)))
ereport(ERROR, ereport(ERROR,
(errcode(ERRCODE_INDEX_CORRUPTED), (errcode(ERRCODE_INDEX_CORRUPTED),
errmsg("block %u is not true root in index \"%s\"", errmsg("block %u is not true root in index \"%s\"",