Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit394795f

Browse files
author
Artur Zakirov
committed
Fix rumCheckPlaceToDataPageLeaf()
1 parentf4fa796 commit394795f

File tree

3 files changed

+16
-33
lines changed

3 files changed

+16
-33
lines changed

‎rum.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -503,8 +503,7 @@ extern int compareRumKey(RumState *state, const RumKey *a, const RumKey *b);
503503
externPointerrumPlaceToDataPageLeaf(Pointerptr,OffsetNumberattnum,
504504
RumKey*item,ItemPointerprev,RumState*rumstate);
505505
externSizerumCheckPlaceToDataPageLeaf(OffsetNumberattnum,
506-
ItemPointeriptr,DatumaddInfo,booladdInfoIsNull,ItemPointerprev,
507-
RumState*rumstate,Sizesize);
506+
RumKey*item,ItemPointerprev,RumState*rumstate,Sizesize);
508507
externuint32rumMergeItemPointers(RumState*rumstate,RumKey*dst,
509508
RumKey*a,uint32na,RumKey*b,uint32nb);
510509
externvoidRumDataPageAddItem(Pagepage,void*data,OffsetNumberoffset);

‎rumdatapage.c

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -263,17 +263,16 @@ rumDataPageLeafGetItemPointerSize(ItemPointer iptr, ItemPointer prev)
263263
*/
264264
Size
265265
rumCheckPlaceToDataPageLeaf(OffsetNumberattnum,
266-
ItemPointeriptr,DatumaddInfo,booladdInfoIsNull,ItemPointerprev,
267-
RumState*rumstate,Sizesize)
266+
RumKey*item,ItemPointerprev,RumState*rumstate,Sizesize)
268267
{
269268
Form_pg_attributeattr;
270269

271-
size+=rumDataPageLeafGetItemPointerSize(iptr,prev);
270+
size+=rumDataPageLeafGetItemPointerSize(&item->iptr,prev);
272271

273-
if (!addInfoIsNull)
272+
if (!item->addInfoIsNull)
274273
{
275274
attr=rumstate->addAttrs[attnum-1];
276-
size=rumComputeDatumSize(size,addInfo,attr->attbyval,
275+
size=rumComputeDatumSize(size,item->addInfo,attr->attbyval,
277276
attr->attalign,attr->attlen,attr->attstorage);
278277
}
279278

@@ -722,8 +721,7 @@ dataIsEnoughSpace(RumBtree btree, Buffer buf, OffsetNumber off)
722721
for (j=btree->curitem;j<btree->nitem;j++)
723722
{
724723
size=rumCheckPlaceToDataPageLeaf(btree->entryAttnum,
725-
&btree->items[j].iptr,btree->items[j].addInfo,
726-
btree->items[j].addInfoIsNull,
724+
&btree->items[j],
727725
(j==btree->curitem) ? (&iptr) :&btree->items[j-1].iptr,
728726
btree->rumstate,size);
729727
}
@@ -732,8 +730,7 @@ dataIsEnoughSpace(RumBtree btree, Buffer buf, OffsetNumber off)
732730
{
733731
j=btree->curitem;
734732
size=rumCheckPlaceToDataPageLeaf(btree->entryAttnum,
735-
&btree->items[j].iptr,btree->items[j].addInfo,
736-
btree->items[j].addInfoIsNull,&iptr,btree->rumstate,size);
733+
&btree->items[j],&iptr,btree->rumstate,size);
737734
}
738735
size+=MAXIMUM_ALIGNOF;
739736

@@ -827,9 +824,7 @@ dataPlaceToPage(RumBtree btree, Page page, OffsetNumber off)
827824
Pointerptr2;
828825

829826
ptr2=page+rumCheckPlaceToDataPageLeaf(btree->entryAttnum,
830-
&btree->items[j].iptr,btree->items[j].addInfo,
831-
btree->items[j].addInfoIsNull,
832-
&iptr,btree->rumstate,ptr-page);
827+
&btree->items[j],&iptr,btree->rumstate,ptr-page);
833828

834829
freespace=RumDataPageFreeSpacePre(page,ptr2);
835830
if (freespace<0)
@@ -954,8 +949,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
954949

955950
prevTotalsize=totalsize;
956951
totalsize=rumCheckPlaceToDataPageLeaf(btree->entryAttnum,
957-
&item.iptr,item.addInfo,item.addInfoIsNull,
958-
&prevIptr,btree->rumstate,totalsize);
952+
&item,&prevIptr,btree->rumstate,totalsize);
959953

960954
maxItemIndex++;
961955
totalCount++;
@@ -968,8 +962,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
968962

969963
prevTotalsize=totalsize;
970964
totalsize=rumCheckPlaceToDataPageLeaf(btree->entryAttnum,
971-
&item.iptr,item.addInfo,item.addInfoIsNull,
972-
&prevIptr,btree->rumstate,totalsize);
965+
&item,&prevIptr,btree->rumstate,totalsize);
973966

974967
totalCount++;
975968
maxItemSize=Max(maxItemSize,totalsize-prevTotalsize);
@@ -989,10 +982,8 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
989982
*/
990983
while (maxItemIndex<btree->nitem&&
991984
(newTotalsize=rumCheckPlaceToDataPageLeaf(btree->entryAttnum,
992-
&item.iptr,item.addInfo,item.addInfoIsNull,
993-
&prevIptr,btree->rumstate,totalsize))<
994-
2*RumDataPageSize-2*maxItemSize-2*MAXIMUM_ALIGNOF
995-
)
985+
&item,&prevIptr,btree->rumstate,totalsize))<
986+
2*RumDataPageSize-2*maxItemSize-2*MAXIMUM_ALIGNOF)
996987
{
997988
maxItemIndex++;
998989
totalCount++;
@@ -1008,8 +999,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
1008999
{
10091000
prevTotalsize=totalsize;
10101001
totalsize=rumCheckPlaceToDataPageLeaf(btree->entryAttnum,
1011-
&item.iptr,item.addInfo,item.addInfoIsNull,
1012-
&prevIptr,btree->rumstate,totalsize);
1002+
&item,&prevIptr,btree->rumstate,totalsize);
10131003
maxItemIndex++;
10141004

10151005
totalCount++;

‎ruminsert.c

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -145,16 +145,12 @@ RumFormTuple(RumState *rumstate,
145145

146146
if (nipd>0)
147147
{
148-
newsize=rumCheckPlaceToDataPageLeaf(attnum,&items[0].iptr,
149-
items[0].addInfo,
150-
items[0].addInfoIsNull,
148+
newsize=rumCheckPlaceToDataPageLeaf(attnum,&items[0],
151149
&nullItemPointer,
152150
rumstate,newsize);
153151
for (i=1;i<nipd;i++)
154152
{
155-
newsize=rumCheckPlaceToDataPageLeaf(attnum,&items[i].iptr,
156-
items[i].addInfo,
157-
items[i].addInfoIsNull,
153+
newsize=rumCheckPlaceToDataPageLeaf(attnum,&items[i],
158154
&items[i-1].iptr,
159155
rumstate,newsize);
160156
}
@@ -330,9 +326,7 @@ buildFreshLeafTuple(RumState *rumstate,
330326

331327
do
332328
{
333-
size=rumCheckPlaceToDataPageLeaf(attnum,&items[itemsCount].iptr,
334-
items[itemsCount].addInfo,
335-
items[itemsCount].addInfoIsNull,
329+
size=rumCheckPlaceToDataPageLeaf(attnum,&items[itemsCount],
336330
&prevIptr,rumstate,size);
337331
prevIptr=items[itemsCount].iptr;
338332
itemsCount++;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp