v1-0001-nbtree-deduplicate-metapage-sanity-checks-in-_bt_.patch

application/octet-stream

Filename: v1-0001-nbtree-deduplicate-metapage-sanity-checks-in-_bt_.patch
Type: application/octet-stream
Part: 0
Message: nbtree: reduce code redundancy by using _bt_getmeta() in _bt_gettrueroot()

Patch

Format: format-patch
Series: patch v1-0001
Subject: nbtree: deduplicate metapage sanity checks in _bt_gettrueroot()
File+
src/backend/access/nbtree/nbtpage.c 1 21
From f3053cb410d4cfa4c0ca2122c2472bcd3681a30e Mon Sep 17 00:00:00 2001
From: "Chao Li (Evan)" <lic@highgo.com>
Date: Thu, 15 Jan 2026 15:47:40 +0800
Subject: [PATCH v1] nbtree: deduplicate metapage sanity checks in
 _bt_gettrueroot()

Replace duplicated metapage sanity checks in _bt_gettrueroot() with a
call to _bt_getmeta(), matching other nbtree callers.

No behavior change.

Author: Chao Li <lic@highgo.com>
---
 src/backend/access/nbtree/nbtpage.c | 22 +---------------------
 1 file changed, 1 insertion(+), 21 deletions(-)

diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c
index 4125c185e8b..c0f7bf91615 100644
--- a/src/backend/access/nbtree/nbtpage.c
+++ b/src/backend/access/nbtree/nbtpage.c
@@ -581,8 +581,6 @@ Buffer
 _bt_gettrueroot(Relation rel)
 {
 	Buffer		metabuf;
-	Page		metapg;
-	BTPageOpaque metaopaque;
 	Buffer		rootbuf;
 	Page		rootpage;
 	BTPageOpaque rootopaque;
@@ -601,25 +599,7 @@ _bt_gettrueroot(Relation rel)
 	rel->rd_amcache = NULL;
 
 	metabuf = _bt_getbuf(rel, BTREE_METAPAGE, BT_READ);
-	metapg = BufferGetPage(metabuf);
-	metaopaque = BTPageGetOpaque(metapg);
-	metad = BTPageGetMeta(metapg);
-
-	if (!P_ISMETA(metaopaque) ||
-		metad->btm_magic != BTREE_MAGIC)
-		ereport(ERROR,
-				(errcode(ERRCODE_INDEX_CORRUPTED),
-				 errmsg("index \"%s\" is not a btree",
-						RelationGetRelationName(rel))));
-
-	if (metad->btm_version < BTREE_MIN_VERSION ||
-		metad->btm_version > BTREE_VERSION)
-		ereport(ERROR,
-				(errcode(ERRCODE_INDEX_CORRUPTED),
-				 errmsg("version mismatch in index \"%s\": file version %d, "
-						"current version %d, minimal supported version %d",
-						RelationGetRelationName(rel),
-						metad->btm_version, BTREE_VERSION, BTREE_MIN_VERSION)));
+	metad = _bt_getmeta(rel, metabuf);
 
 	/* if no root page initialized yet, fail */
 	if (metad->btm_root == P_NONE)
-- 
2.39.5 (Apple Git-154)