diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2013-11-07 19:36:52 +0200 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2013-11-07 19:45:07 +0200 |
commit | fde7172d932bc0c6e62be50293876916efada016 (patch) | |
tree | 00ed82887b0f7deb430ad3144f1c73baba17b2cb /src | |
parent | 8dace66e0735ca39b779922d02c24ea2686e6521 (diff) | |
download | postgresql-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.c | 14 |
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; |