diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index 5c2b8034f5..a4d46a0f44 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -1886,7 +1886,7 @@ _bt_insert_parent(Relation rel, * 05/27/97 */ stack->bts_btentry = bknum; - pbuf = _bt_getstackbuf(rel, stack, BT_WRITE); + pbuf = _bt_getstackbuf(rel, stack); /* * Now we can unlock the right child. The left child will be unlocked @@ -1976,10 +1976,11 @@ _bt_finish_split(Relation rel, Buffer lbuf, BTStack stack) * * Adjusts bts_blkno & bts_offset if changed. * - * Returns InvalidBuffer if item not found (should not happen). + * Returns write-locked buffer, or InvalidBuffer if item not found + * (should not happen). */ Buffer -_bt_getstackbuf(Relation rel, BTStack stack, int access) +_bt_getstackbuf(Relation rel, BTStack stack) { BlockNumber blkno; OffsetNumber start; @@ -1993,11 +1994,11 @@ _bt_getstackbuf(Relation rel, BTStack stack, int access) Page page; BTPageOpaque opaque; - buf = _bt_getbuf(rel, blkno, access); + buf = _bt_getbuf(rel, blkno, BT_WRITE); page = BufferGetPage(buf); opaque = (BTPageOpaque) PageGetSpecialPointer(page); - if (access == BT_WRITE && P_INCOMPLETE_SPLIT(opaque)) + if (P_INCOMPLETE_SPLIT(opaque)) { _bt_finish_split(rel, buf, stack->bts_parent); continue; diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c index 300daf915d..9c785bca95 100644 --- a/src/backend/access/nbtree/nbtpage.c +++ b/src/backend/access/nbtree/nbtpage.c @@ -1153,7 +1153,7 @@ _bt_lock_branch_parent(Relation rel, BlockNumber child, BTStack stack, * if needed) */ stack->bts_btentry = child; - pbuf = _bt_getstackbuf(rel, stack, BT_WRITE); + pbuf = _bt_getstackbuf(rel, stack); if (pbuf == InvalidBuffer) elog(ERROR, "failed to re-find parent key in index \"%s\" for deletion target page %u", RelationGetRelationName(rel), child); diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index 4fb92d60a1..60622ea790 100644 --- a/src/include/access/nbtree.h +++ b/src/include/access/nbtree.h @@ -528,7 +528,7 @@ extern void _bt_parallel_advance_array_keys(IndexScanDesc scan); */ extern bool _bt_doinsert(Relation rel, IndexTuple itup, IndexUniqueCheck checkUnique, Relation heapRel); -extern Buffer _bt_getstackbuf(Relation rel, BTStack stack, int access); +extern Buffer _bt_getstackbuf(Relation rel, BTStack stack); extern void _bt_finish_split(Relation rel, Buffer bbuf, BTStack stack); /*