@@ -876,7 +876,7 @@ dataPlaceToPage(RumBtree btree, Page page, OffsetNumber off)
876
876
if (ptr - RumDataPageGetData(page) > \
877
877
totalsize / 2 && page == newlPage) \
878
878
{ \
879
- maxLeftIptr = item.iptr; \
879
+ maxLeftIptr = curIptr; \
880
880
ItemPointerSetMin(&prevIptr); \
881
881
RumPageGetOpaque(newlPage)->maxoff = j; \
882
882
page = rPage; \
@@ -909,7 +909,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
909
909
Page newlPage = PageGetTempPageCopy (lPage );
910
910
Size pageSize = PageGetPageSize (newlPage );
911
911
Size maxItemSize = 0 ;
912
- ItemPointerData prevIptr , maxLeftIptr ;
912
+ ItemPointerData prevIptr , maxLeftIptr , curIptr ;
913
913
RumKey item ;
914
914
int totalCount = 0 ;
915
915
int maxItemIndex = btree -> curitem ;
@@ -1017,6 +1017,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
1017
1017
{
1018
1018
while (btree -> curitem < maxItemIndex )
1019
1019
{
1020
+ curIptr = btree -> items [btree -> curitem ].iptr ;
1020
1021
ptr = rumPlaceToDataPageLeaf (ptr , btree -> entryAttnum ,
1021
1022
& btree -> items [btree -> curitem ],
1022
1023
& prevIptr , btree -> rumstate );
@@ -1033,6 +1034,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
1033
1034
copyPtr = rumDataPageLeafRead (copyPtr , btree -> entryAttnum , & item ,
1034
1035
btree -> rumstate );
1035
1036
1037
+ curIptr = item .iptr ;
1036
1038
ptr = rumPlaceToDataPageLeaf (ptr , btree -> entryAttnum , & item ,
1037
1039
& prevIptr , btree -> rumstate );
1038
1040
freespace = RumDataPageFreeSpacePre (page , ptr );
@@ -1047,6 +1049,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
1047
1049
{
1048
1050
while (btree -> curitem < maxItemIndex )
1049
1051
{
1052
+ curIptr = btree -> items [btree -> curitem ].iptr ;
1050
1053
ptr = rumPlaceToDataPageLeaf (ptr , btree -> entryAttnum ,
1051
1054
& btree -> items [btree -> curitem ], & prevIptr , btree -> rumstate );
1052
1055
freespace = RumDataPageFreeSpacePre (page , ptr );
0 commit comments