Skip to content

Commit 1608500

Browse files
author
Alexander Korotkov
committed
Fix right bound iptr.
1 parent 4614669 commit 1608500

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

rumdatapage.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -876,7 +876,7 @@ dataPlaceToPage(RumBtree btree, Page page, OffsetNumber off)
876876
if (ptr - RumDataPageGetData(page) > \
877877
totalsize / 2 && page == newlPage) \
878878
{ \
879-
maxLeftIptr = item.iptr; \
879+
maxLeftIptr = curIptr; \
880880
ItemPointerSetMin(&prevIptr); \
881881
RumPageGetOpaque(newlPage)->maxoff = j; \
882882
page = rPage; \
@@ -909,7 +909,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
909909
Page newlPage = PageGetTempPageCopy(lPage);
910910
Size pageSize = PageGetPageSize(newlPage);
911911
Size maxItemSize = 0;
912-
ItemPointerData prevIptr, maxLeftIptr;
912+
ItemPointerData prevIptr, maxLeftIptr, curIptr;
913913
RumKey item;
914914
int totalCount = 0;
915915
int maxItemIndex = btree->curitem;
@@ -1017,6 +1017,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
10171017
{
10181018
while (btree->curitem < maxItemIndex)
10191019
{
1020+
curIptr = btree->items[btree->curitem].iptr;
10201021
ptr = rumPlaceToDataPageLeaf(ptr, btree->entryAttnum,
10211022
&btree->items[btree->curitem],
10221023
&prevIptr, btree->rumstate);
@@ -1033,6 +1034,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
10331034
copyPtr = rumDataPageLeafRead(copyPtr, btree->entryAttnum, &item,
10341035
btree->rumstate);
10351036

1037+
curIptr = item.iptr;
10361038
ptr = rumPlaceToDataPageLeaf(ptr, btree->entryAttnum, &item,
10371039
&prevIptr, btree->rumstate);
10381040
freespace = RumDataPageFreeSpacePre(page, ptr);
@@ -1047,6 +1049,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
10471049
{
10481050
while (btree->curitem < maxItemIndex)
10491051
{
1052+
curIptr = btree->items[btree->curitem].iptr;
10501053
ptr = rumPlaceToDataPageLeaf(ptr, btree->entryAttnum,
10511054
&btree->items[btree->curitem], &prevIptr, btree->rumstate);
10521055
freespace = RumDataPageFreeSpacePre(page, ptr);

0 commit comments

Comments
 (0)