aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2013-11-07 19:36:52 +0200
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2013-11-07 19:45:07 +0200
commitfde7172d932bc0c6e62be50293876916efada016 (patch)
tree00ed82887b0f7deb430ad3144f1c73baba17b2cb /src
parent8dace66e0735ca39b779922d02c24ea2686e6521 (diff)
downloadpostgresql-fde7172d932bc0c6e62be50293876916efada016.tar.gz
postgresql-fde7172d932bc0c6e62be50293876916efada016.zip
Fix setting of right bound at GIN page split.
Broken by my refactoring.
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/gin/gindatapage.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/backend/access/gin/gindatapage.c b/src/backend/access/gin/gindatapage.c
index d67e50555ca..049db38a2bf 100644
--- a/src/backend/access/gin/gindatapage.c
+++ b/src/backend/access/gin/gindatapage.c
@@ -548,7 +548,12 @@ dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRe
/* set up right bound for left page */
bound = GinDataPageGetRightBound(lpage);
- *bound = btree->pitem.key;
+ if (GinPageIsLeaf(lpage))
+ *bound = *GinDataPageGetItemPointer(lpage,
+ GinPageGetOpaque(lpage)->maxoff);
+ else
+ *bound = GinDataPageGetPostingItem(lpage,
+ GinPageGetOpaque(lpage)->maxoff)->key;
/* set up right bound for right page */
bound = GinDataPageGetRightBound(rpage);
@@ -577,12 +582,7 @@ dataSplitPage(GinBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRe
/* Prepare a downlink tuple for insertion to the parent */
PostingItemSetBlockNumber(&(btree->pitem), BufferGetBlockNumber(lbuf));
- if (GinPageIsLeaf(lpage))
- btree->pitem.key = *GinDataPageGetItemPointer(lpage,
- GinPageGetOpaque(lpage)->maxoff);
- else
- btree->pitem.key = GinDataPageGetPostingItem(lpage,
- GinPageGetOpaque(lpage)->maxoff)->key;
+ btree->pitem.key = *GinDataPageGetRightBound(lpage);
btree->rightblkno = BufferGetBlockNumber(rbuf);
return lpage;