Skip to content

Commit 1edaaca

Browse files
author
Artur Zakirov
committed
Remove inline functions to work with generic XLog
1 parent d60581e commit 1edaaca

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
extern PGDLLIMPORT int RumFuzzySearchLimit;
767767

768-
/*
769-
* Functions to handle generic XLOG
770-
*/
771-
static inline GenericXLogState *
772-
RumGenericXLogStart(Relation relation, bool isbuild)
773-
{
774-
if (!isbuild)
775-
return GenericXLogStart(relation);
776-
return NULL;
777-
}
778-
779-
static inline Page
780-
RumGenericXLogRegisterBuffer(GenericXLogState *state, Buffer buffer, int flags,
781-
bool isbuild)
782-
{
783-
if (!isbuild)
784-
return GenericXLogRegisterBuffer(state, buffer, flags);
785-
return BufferGetPage(buffer);
786-
}
787-
788-
static inline XLogRecPtr
789-
RumGenericXLogFinish(GenericXLogState *state, bool isbuild)
790-
{
791-
if (!isbuild)
792-
return GenericXLogFinish(state);
793-
return InvalidXLogRecPtr;
794-
}
795-
796-
static inline void
797-
RumGenericXLogAbort(GenericXLogState *state, bool isbuild)
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
Buffer lbuffer;
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
return freesize;
@@ -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
uint32 i;
285283
Size tupsize;
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
BlockNumber blknoToDelete;
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
ItemPointerData prev_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
Page page;
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy