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

Commit1edaaca

Browse files
author
Artur Zakirov
committed
Remove inline functions to work with generic XLog
1 parentd60581e commit1edaaca

File tree

6 files changed

+55
-109
lines changed

6 files changed

+55
-109
lines changed

‎rum.h

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -765,41 +765,6 @@ extern Datum rum_ts_distance(PG_FUNCTION_ARGS);
765765
/* GUC parameters */
766766
externPGDLLIMPORTintRumFuzzySearchLimit;
767767

768-
/*
769-
* Functions to handle generic XLOG
770-
*/
771-
staticinlineGenericXLogState*
772-
RumGenericXLogStart(Relationrelation,boolisbuild)
773-
{
774-
if (!isbuild)
775-
returnGenericXLogStart(relation);
776-
returnNULL;
777-
}
778-
779-
staticinlinePage
780-
RumGenericXLogRegisterBuffer(GenericXLogState*state,Bufferbuffer,intflags,
781-
boolisbuild)
782-
{
783-
if (!isbuild)
784-
returnGenericXLogRegisterBuffer(state,buffer,flags);
785-
returnBufferGetPage(buffer);
786-
}
787-
788-
staticinlineXLogRecPtr
789-
RumGenericXLogFinish(GenericXLogState*state,boolisbuild)
790-
{
791-
if (!isbuild)
792-
returnGenericXLogFinish(state);
793-
returnInvalidXLogRecPtr;
794-
}
795-
796-
staticinlinevoid
797-
RumGenericXLogAbort(GenericXLogState*state,boolisbuild)
798-
{
799-
if (!isbuild)
800-
GenericXLogAbort(state);
801-
}
802-
803768
/*
804769
* Functions for reading ItemPointers with additional information. Used in
805770
* various .c files and have to be inline for being fast.

‎rumbtree.c

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -399,12 +399,11 @@ rumInsertValue(Relation index, RumBtree btree, RumBtreeStack * stack,
399399

400400
if (btree->isEnoughSpace(btree,stack->buffer,stack->off))
401401
{
402-
state=RumGenericXLogStart(index,btree->rumstate->isBuild);
403-
page=RumGenericXLogRegisterBuffer(state,stack->buffer,0,
404-
btree->rumstate->isBuild);
402+
state=GenericXLogStart(index);
403+
page=GenericXLogRegisterBuffer(state,stack->buffer,0);
405404

406405
btree->placeToPage(btree,page,stack->off);
407-
RumGenericXLogFinish(state,btree->rumstate->isBuild);
406+
GenericXLogFinish(state);
408407

409408
LockBuffer(stack->buffer,RUM_UNLOCK);
410409
freeRumBtreeStack(stack);
@@ -431,13 +430,11 @@ rumInsertValue(Relation index, RumBtree btree, RumBtreeStack * stack,
431430
{
432431
Bufferlbuffer;
433432

434-
state=RumGenericXLogStart(index,btree->rumstate->isBuild);
433+
state=GenericXLogStart(index);
435434

436-
page=RumGenericXLogRegisterBuffer(state,stack->buffer,0,
437-
btree->rumstate->isBuild);
438-
rpage=RumGenericXLogRegisterBuffer(state,rbuffer,
439-
GENERIC_XLOG_FULL_IMAGE,
440-
btree->rumstate->isBuild);
435+
page=GenericXLogRegisterBuffer(state,stack->buffer,0);
436+
rpage=GenericXLogRegisterBuffer(state,rbuffer,
437+
GENERIC_XLOG_FULL_IMAGE);
441438

442439
/*
443440
* newlpage is a pointer to memory page, it doesn't associate
@@ -451,9 +448,8 @@ rumInsertValue(Relation index, RumBtree btree, RumBtreeStack * stack,
451448
* pointer on root to left and right page
452449
*/
453450
lbuffer=RumNewBuffer(btree->index);
454-
lpage=RumGenericXLogRegisterBuffer(state,lbuffer,
455-
GENERIC_XLOG_FULL_IMAGE,
456-
btree->rumstate->isBuild);
451+
lpage=GenericXLogRegisterBuffer(state,lbuffer,
452+
GENERIC_XLOG_FULL_IMAGE);
457453

458454
RumPageGetOpaque(rpage)->rightlink=InvalidBlockNumber;
459455
RumPageGetOpaque(newlpage)->leftlink=InvalidBlockNumber;
@@ -466,7 +462,7 @@ rumInsertValue(Relation index, RumBtree btree, RumBtreeStack * stack,
466462
btree->fillRoot(btree,stack->buffer,lbuffer,rbuffer,
467463
page,lpage,rpage);
468464

469-
RumGenericXLogFinish(state,btree->rumstate->isBuild);
465+
GenericXLogFinish(state);
470466

471467
UnlockReleaseBuffer(rbuffer);
472468
UnlockReleaseBuffer(lbuffer);
@@ -489,12 +485,10 @@ rumInsertValue(Relation index, RumBtree btree, RumBtreeStack * stack,
489485
{
490486
/* split non-root page */
491487

492-
state=RumGenericXLogStart(index,btree->rumstate->isBuild);
488+
state=GenericXLogStart(index);
493489

494-
lpage=RumGenericXLogRegisterBuffer(state,stack->buffer,0,
495-
btree->rumstate->isBuild);
496-
rpage=RumGenericXLogRegisterBuffer(state,rbuffer,0,
497-
btree->rumstate->isBuild);
490+
lpage=GenericXLogRegisterBuffer(state,stack->buffer,0);
491+
rpage=GenericXLogRegisterBuffer(state,rbuffer,0);
498492

499493
/*
500494
* newlpage is a pointer to memory page, it doesn't associate
@@ -510,7 +504,7 @@ rumInsertValue(Relation index, RumBtree btree, RumBtreeStack * stack,
510504

511505
PageRestoreTempPage(newlpage,lpage);
512506

513-
RumGenericXLogFinish(state,btree->rumstate->isBuild);
507+
GenericXLogFinish(state);
514508

515509
UnlockReleaseBuffer(rbuffer);
516510
}

‎rumfast.c

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ writeListPage(RumState *rumstate, Buffer buffer,
5858
off;
5959
GenericXLogState*state;
6060

61-
state=RumGenericXLogStart(rumstate->index,rumstate->isBuild);
61+
state=GenericXLogStart(rumstate->index);
6262

63-
page=RumGenericXLogRegisterBuffer(state,buffer,0,rumstate->isBuild);
63+
page=GenericXLogRegisterBuffer(state,buffer,0);
6464
RumInitPage(page,RUM_LIST,BufferGetPageSize(buffer));
6565

6666
off=FirstOffsetNumber;
@@ -97,7 +97,7 @@ writeListPage(RumState *rumstate, Buffer buffer,
9797

9898
/* get free space before releasing buffer */
9999
freesize=PageGetExactFreeSpace(page);
100-
RumGenericXLogFinish(state,rumstate->isBuild);
100+
GenericXLogFinish(state);
101101
UnlockReleaseBuffer(buffer);
102102

103103
returnfreesize;
@@ -193,7 +193,7 @@ rumHeapTupleFastInsert(RumState * rumstate, RumTupleCollector * collector)
193193
if (collector->ntuples==0)
194194
return;
195195

196-
state=RumGenericXLogStart(rumstate->index,rumstate->isBuild);
196+
state=GenericXLogStart(rumstate->index);
197197
metabuffer=ReadBuffer(index,RUM_METAPAGE_BLKNO);
198198

199199
if (collector->sumsize+collector->ntuples*sizeof(ItemIdData)>RumListPageSize)
@@ -236,8 +236,7 @@ rumHeapTupleFastInsert(RumState * rumstate, RumTupleCollector * collector)
236236
* metapage was unlocked, see above
237237
*/
238238
LockBuffer(metabuffer,RUM_EXCLUSIVE);
239-
metapage=RumGenericXLogRegisterBuffer(state,metabuffer,0,
240-
rumstate->isBuild);
239+
metapage=GenericXLogRegisterBuffer(state,metabuffer,0);
241240
metadata=RumPageGetMeta(metapage);
242241

243242
if (metadata->head==InvalidBlockNumber)
@@ -260,8 +259,7 @@ rumHeapTupleFastInsert(RumState * rumstate, RumTupleCollector * collector)
260259

261260
buffer=ReadBuffer(index,metadata->tail);
262261
LockBuffer(buffer,RUM_EXCLUSIVE);
263-
page=RumGenericXLogRegisterBuffer(state,buffer,0,
264-
rumstate->isBuild);
262+
page=GenericXLogRegisterBuffer(state,buffer,0);
265263

266264
Assert(RumPageGetOpaque(page)->rightlink==InvalidBlockNumber);
267265

@@ -284,13 +282,12 @@ rumHeapTupleFastInsert(RumState * rumstate, RumTupleCollector * collector)
284282
uint32i;
285283
Sizetupsize;
286284

287-
metapage=RumGenericXLogRegisterBuffer(state,metabuffer,0,
288-
rumstate->isBuild);
285+
metapage=GenericXLogRegisterBuffer(state,metabuffer,0);
289286
metadata=RumPageGetMeta(metapage);
290287

291288
buffer=ReadBuffer(index,metadata->tail);
292289
LockBuffer(buffer,RUM_EXCLUSIVE);
293-
page=RumGenericXLogRegisterBuffer(state,buffer,0,rumstate->isBuild);
290+
page=GenericXLogRegisterBuffer(state,buffer,0);
294291

295292
off= (PageIsEmpty(page)) ?FirstOffsetNumber :
296293
OffsetNumberNext(PageGetMaxOffsetNumber(page));
@@ -309,7 +306,7 @@ rumHeapTupleFastInsert(RumState * rumstate, RumTupleCollector * collector)
309306

310307
if (l==InvalidOffsetNumber)
311308
{
312-
RumGenericXLogAbort(state,rumstate->isBuild);
309+
GenericXLogAbort(state);
313310
elog(ERROR,"failed to add item to index page in \"%s\"",
314311
RelationGetRelationName(index));
315312
}
@@ -332,7 +329,7 @@ rumHeapTupleFastInsert(RumState * rumstate, RumTupleCollector * collector)
332329
if (metadata->nPendingPages*RUM_PAGE_FREESIZE>work_mem*1024L)
333330
needCleanup= true;
334331

335-
RumGenericXLogFinish(state,rumstate->isBuild);
332+
GenericXLogFinish(state);
336333

337334
if (buffer!=InvalidBuffer)
338335
UnlockReleaseBuffer(buffer);
@@ -508,10 +505,9 @@ shiftList(RumState *rumstate, Buffer metabuffer, BlockNumber newHead,
508505
BlockNumberblknoToDelete;
509506
GenericXLogState*metastate;
510507

511-
metastate=RumGenericXLogStart(rumstate->index,rumstate->isBuild);
512-
metapage=RumGenericXLogRegisterBuffer(metastate,metabuffer,
513-
GENERIC_XLOG_FULL_IMAGE,
514-
rumstate->isBuild);
508+
metastate=GenericXLogStart(rumstate->index);
509+
metapage=GenericXLogRegisterBuffer(metastate,metabuffer,
510+
GENERIC_XLOG_FULL_IMAGE);
515511
metadata=RumPageGetMeta(metapage);
516512
blknoToDelete=metadata->head;
517513

@@ -535,7 +531,7 @@ shiftList(RumState *rumstate, Buffer metabuffer, BlockNumber newHead,
535531

536532
if (RumPageIsDeleted(page))
537533
{
538-
RumGenericXLogAbort(metastate,rumstate->isBuild);
534+
GenericXLogAbort(metastate);
539535
/* concurrent cleanup process is detected */
540536
for (i=0;i<nDeleted;i++)
541537
UnlockReleaseBuffer(buffers[i]);
@@ -565,23 +561,22 @@ shiftList(RumState *rumstate, Buffer metabuffer, BlockNumber newHead,
565561
metadata->nPendingHeapTuples=0;
566562
}
567563

568-
MarkBufferDirty(metabuffer);
564+
//MarkBufferDirty(metabuffer);
569565

570566
for (i=0;i<nDeleted;i++)
571567
{
572-
state=RumGenericXLogStart(rumstate->index,rumstate->isBuild);
573-
page=RumGenericXLogRegisterBuffer(state,buffers[i],0,
574-
rumstate->isBuild);
568+
state=GenericXLogStart(rumstate->index);
569+
page=GenericXLogRegisterBuffer(state,buffers[i],0);
575570

576571
RumPageGetOpaque(page)->flags=RUM_DELETED;
577-
RumGenericXLogFinish(state,rumstate->isBuild);
572+
GenericXLogFinish(state);
578573
}
579574

580575
for (i=0;i<nDeleted;i++)
581576
UnlockReleaseBuffer(buffers[i]);
582577
}while (blknoToDelete!=newHead);
583578

584-
RumGenericXLogFinish(metastate,rumstate->isBuild);
579+
GenericXLogFinish(metastate);
585580

586581
return false;
587582
}

‎ruminsert.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,9 @@ createPostingTree(RumState * rumstate, OffsetNumber attnum, Relation index,
4949
ItemPointerDataprev_iptr= {{0,0},0};
5050
GenericXLogState*state;
5151

52-
state=RumGenericXLogStart(index,rumstate->isBuild);
52+
state=GenericXLogStart(index);
5353

54-
page=RumGenericXLogRegisterBuffer(state,buffer,GENERIC_XLOG_FULL_IMAGE,
55-
rumstate->isBuild);
54+
page=GenericXLogRegisterBuffer(state,buffer,GENERIC_XLOG_FULL_IMAGE);
5655
RumInitPage(page,RUM_DATA |RUM_LEAF,BufferGetPageSize(buffer));
5756

5857
blkno=BufferGetBlockNumber(buffer);
@@ -69,7 +68,7 @@ createPostingTree(RumState * rumstate, OffsetNumber attnum, Relation index,
6968
Assert(RumDataPageFreeSpacePre(page,ptr) >=0);
7069
updateItemIndexes(page,attnum,rumstate);
7170

72-
RumGenericXLogFinish(state,rumstate->isBuild);
71+
GenericXLogFinish(state);
7372

7473
UnlockReleaseBuffer(buffer);
7574

‎rumutil.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -487,8 +487,7 @@ RumInitBuffer(GenericXLogState *state, Buffer buffer, uint32 flags, bool isBuild
487487
{
488488
Pagepage;
489489

490-
page=RumGenericXLogRegisterBuffer(state,buffer,GENERIC_XLOG_FULL_IMAGE,
491-
isBuild);
490+
page=GenericXLogRegisterBuffer(state,buffer,GENERIC_XLOG_FULL_IMAGE);
492491

493492
RumInitPage(page,flags,BufferGetPageSize(buffer));
494493
}
@@ -500,8 +499,8 @@ RumInitMetabuffer(GenericXLogState *state, Buffer metaBuffer, bool isBuild)
500499
RumMetaPageData*metadata;
501500

502501
/* Initialize contents of meta page */
503-
metaPage=RumGenericXLogRegisterBuffer(state,metaBuffer,
504-
GENERIC_XLOG_FULL_IMAGE,isBuild);
502+
metaPage=GenericXLogRegisterBuffer(state,metaBuffer,
503+
GENERIC_XLOG_FULL_IMAGE);
505504

506505
RumInitPage(metaPage,RUM_META,BufferGetPageSize(metaBuffer));
507506
metadata=RumPageGetMeta(metaPage);
@@ -850,19 +849,19 @@ rumUpdateStats(Relation index, const GinStatsData *stats, bool isBuild)
850849
RumMetaPageData*metadata;
851850
GenericXLogState*state;
852851

853-
state=RumGenericXLogStart(index,isBuild);
852+
state=GenericXLogStart(index);
854853

855854
metabuffer=ReadBuffer(index,RUM_METAPAGE_BLKNO);
856855
LockBuffer(metabuffer,RUM_EXCLUSIVE);
857-
metapage=RumGenericXLogRegisterBuffer(state,metabuffer,0,isBuild);
856+
metapage=GenericXLogRegisterBuffer(state,metabuffer,0);
858857
metadata=RumPageGetMeta(metapage);
859858

860859
metadata->nTotalPages=stats->nTotalPages;
861860
metadata->nEntryPages=stats->nEntryPages;
862861
metadata->nDataPages=stats->nDataPages;
863862
metadata->nEntries=stats->nEntries;
864863

865-
RumGenericXLogFinish(state,isBuild);
864+
GenericXLogFinish(state);
866865

867866
UnlockReleaseBuffer(metabuffer);
868867
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp