Skip to content

Commit fde7172

Browse files
committed
Fix setting of right bound at GIN page split.
Broken by my refactoring.
1 parent 8dace66 commit fde7172

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/backend/access/gin/gindatapage.c

+7-7
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,12 @@ dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRe
548548

549549
/* set up right bound for left page */
550550
bound = GinDataPageGetRightBound(lpage);
551-
*bound = btree->pitem.key;
551+
if (GinPageIsLeaf(lpage))
552+
*bound = *GinDataPageGetItemPointer(lpage,
553+
GinPageGetOpaque(lpage)->maxoff);
554+
else
555+
*bound = GinDataPageGetPostingItem(lpage,
556+
GinPageGetOpaque(lpage)->maxoff)->key;
552557

553558
/* set up right bound for right page */
554559
bound = GinDataPageGetRightBound(rpage);
@@ -577,12 +582,7 @@ dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRe
577582

578583
/* Prepare a downlink tuple for insertion to the parent */
579584
PostingItemSetBlockNumber(&(btree->pitem), BufferGetBlockNumber(lbuf));
580-
if (GinPageIsLeaf(lpage))
581-
btree->pitem.key = *GinDataPageGetItemPointer(lpage,
582-
GinPageGetOpaque(lpage)->maxoff);
583-
else
584-
btree->pitem.key = GinDataPageGetPostingItem(lpage,
585-
GinPageGetOpaque(lpage)->maxoff)->key;
585+
btree->pitem.key = *GinDataPageGetRightBound(lpage);
586586
btree->rightblkno = BufferGetBlockNumber(rbuf);
587587

588588
return lpage;

0 commit comments

Comments
 (0)