Skip to content

Commit f4fa796

Browse files
author
Artur Zakirov
committed
Fix rumPlaceToDataPageLeaf()
1 parent dd097b2 commit f4fa796

File tree

4 files changed

+16
-32
lines changed

4 files changed

+16
-32
lines changed

rum.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -501,8 +501,7 @@ extern void checkLeafDataPage(RumState *rumstate, AttrNumber attrnum, Page page)
501501
extern int rumCompareItemPointers(const ItemPointerData * a, const ItemPointerData * b);
502502
extern int compareRumKey(RumState *state, const RumKey *a, const RumKey *b);
503503
extern Pointer rumPlaceToDataPageLeaf(Pointer ptr, OffsetNumber attnum,
504-
ItemPointer iptr, Datum addInfo, bool addInfoIsNull, ItemPointer prev,
505-
RumState *rumstate);
504+
RumKey *item, ItemPointer prev, RumState *rumstate);
506505
extern Size rumCheckPlaceToDataPageLeaf(OffsetNumber attnum,
507506
ItemPointer iptr, Datum addInfo, bool addInfoIsNull, ItemPointer prev,
508507
RumState *rumstate, Size size);

rumdatapage.c

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -208,17 +208,17 @@ rumDataPageLeafWriteItemPointer(char *ptr, ItemPointer iptr, ItemPointer prev,
208208
*/
209209
Pointer
210210
rumPlaceToDataPageLeaf(Pointer ptr, OffsetNumber attnum,
211-
ItemPointer iptr, Datum addInfo, bool addInfoIsNull, ItemPointer prev,
212-
RumState *rumstate)
211+
RumKey *item, ItemPointer prev, RumState *rumstate)
213212
{
214213
Form_pg_attribute attr;
215214

216-
ptr = rumDataPageLeafWriteItemPointer(ptr, iptr, prev, addInfoIsNull);
215+
ptr = rumDataPageLeafWriteItemPointer(ptr, &item->iptr, prev,
216+
item->addInfoIsNull);
217217

218-
if (!addInfoIsNull)
218+
if (!item->addInfoIsNull)
219219
{
220220
attr = rumstate->addAttrs[attnum - 1];
221-
ptr = rumDatumWrite(ptr, addInfo, attr->attbyval, attr->attalign,
221+
ptr = rumDatumWrite(ptr, item->addInfo, attr->attbyval, attr->attalign,
222222
attr->attlen, attr->attstorage);
223223
}
224224
return ptr;
@@ -836,9 +836,7 @@ dataPlaceToPage(RumBtree btree, Page page, OffsetNumber off)
836836
break;
837837

838838
ptr = rumPlaceToDataPageLeaf(ptr, btree->entryAttnum,
839-
&btree->items[j].iptr, btree->items[j].addInfo,
840-
btree->items[j].addInfoIsNull,
841-
&iptr, btree->rumstate);
839+
&btree->items[j], &iptr, btree->rumstate);
842840
freespace = RumDataPageFreeSpacePre(page,ptr);
843841
Assert(freespace >= 0);
844842

@@ -855,9 +853,7 @@ dataPlaceToPage(RumBtree btree, Page page, OffsetNumber off)
855853
copy_ptr = rumDataPageLeafRead(copy_ptr, btree->entryAttnum,
856854
&copy_item, btree->rumstate,
857855
true);
858-
ptr = rumPlaceToDataPageLeaf(ptr, btree->entryAttnum, &copy_item.iptr,
859-
copy_item.addInfo,
860-
copy_item.addInfoIsNull,
856+
ptr = rumPlaceToDataPageLeaf(ptr, btree->entryAttnum, &copy_item,
861857
&iptr, btree->rumstate);
862858

863859
freespace = RumDataPageFreeSpacePre(page,ptr);
@@ -1041,9 +1037,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
10411037
while (btree->curitem < maxItemIndex)
10421038
{
10431039
ptr = rumPlaceToDataPageLeaf(ptr, btree->entryAttnum,
1044-
&btree->items[btree->curitem].iptr,
1045-
btree->items[btree->curitem].addInfo,
1046-
btree->items[btree->curitem].addInfoIsNull,
1040+
&btree->items[btree->curitem],
10471041
&prevIptr, btree->rumstate);
10481042
freespace = RumDataPageFreeSpacePre(page, ptr);
10491043
Assert(freespace >= 0);
@@ -1058,8 +1052,8 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
10581052
copyPtr = rumDataPageLeafRead(copyPtr, btree->entryAttnum, &item,
10591053
btree->rumstate, true);
10601054

1061-
ptr = rumPlaceToDataPageLeaf(ptr, btree->entryAttnum, &item.iptr,
1062-
item.addInfo, item.addInfoIsNull, &prevIptr, btree->rumstate);
1055+
ptr = rumPlaceToDataPageLeaf(ptr, btree->entryAttnum, &item,
1056+
&prevIptr, btree->rumstate);
10631057
freespace = RumDataPageFreeSpacePre(page, ptr);
10641058
Assert(freespace >= 0);
10651059

@@ -1073,10 +1067,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
10731067
while (btree->curitem < maxItemIndex)
10741068
{
10751069
ptr = rumPlaceToDataPageLeaf(ptr, btree->entryAttnum,
1076-
&btree->items[btree->curitem].iptr,
1077-
btree->items[btree->curitem].addInfo,
1078-
btree->items[btree->curitem].addInfoIsNull,
1079-
&prevIptr, btree->rumstate);
1070+
&btree->items[btree->curitem], &prevIptr, btree->rumstate);
10801071
freespace = RumDataPageFreeSpacePre(page, ptr);
10811072
Assert(freespace >= 0);
10821073

ruminsert.c

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@ createPostingTree(RumState *rumstate, OffsetNumber attnum, Relation index,
6363
{
6464
if (i > 0)
6565
prev_iptr = items[i - 1].iptr;
66-
ptr = rumPlaceToDataPageLeaf(ptr, attnum, &items[i].iptr,
67-
items[i].addInfo, items[i].addInfoIsNull,
66+
ptr = rumPlaceToDataPageLeaf(ptr, attnum, &items[i],
6867
&prev_iptr, rumstate);
6968
}
7069
freespace = RumDataPageFreeSpacePre(page, ptr);
@@ -201,14 +200,11 @@ RumFormTuple(RumState *rumstate,
201200
if (nipd > 0)
202201
{
203202
char *ptr = RumGetPosting(itup);
204-
ptr = rumPlaceToDataPageLeaf(ptr, attnum, &items[0].iptr,
205-
items[0].addInfo, items[0].addInfoIsNull,
203+
ptr = rumPlaceToDataPageLeaf(ptr, attnum, &items[0],
206204
&nullItemPointer, rumstate);
207205
for (i = 1; i < nipd; i++)
208206
{
209-
ptr = rumPlaceToDataPageLeaf(ptr, attnum, &items[i].iptr,
210-
items[i].addInfo,
211-
items[i].addInfoIsNull,
207+
ptr = rumPlaceToDataPageLeaf(ptr, attnum, &items[i],
212208
&items[i - 1].iptr, rumstate);
213209
}
214210

rumvacuum.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,7 @@ rumVacuumPostingList(RumVacuumState *gvs, OffsetNumber attnum, Pointer src,
7979
{
8080
gvs->result->num_index_tuples += 1;
8181
if (i != j)
82-
dst = rumPlaceToDataPageLeaf(dst, attnum, &item.iptr,
83-
item.addInfo,
84-
item.addInfoIsNull,
82+
dst = rumPlaceToDataPageLeaf(dst, attnum, &item,
8583
&prevIptr, &gvs->rumstate);
8684
j++;
8785
prevIptr = item.iptr;

0 commit comments

Comments
 (0)