Skip to content

Commit 152f5b3

Browse files
author
Artur Zakirov
committed
XLogRecData was renamed
1 parent b259931 commit 152f5b3

File tree

6 files changed

+70
-71
lines changed

6 files changed

+70
-71
lines changed

rum.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@
2121
#include "storage/bufmgr.h"
2222
#include "utils/tuplesort.h"
2323

24-
typedef struct XLogRecData
24+
typedef struct RumXLogRecData
2525
{
2626
char *data; /* start of rmgr data to include */
2727
uint32 len; /* length of rmgr data to include */
2828
Buffer buffer; /* buffer associated with data, if any */
2929
bool buffer_std; /* buffer has standard pd_lower/pd_upper */
30-
struct XLogRecData *next; /* next struct in chain, or NULL */
31-
} XLogRecData;
30+
struct RumXLogRecData *next; /* next struct in chain, or NULL */
31+
} RumXLogRecData;
3232

3333
/*
3434
* Page opaque data in a inverted index page.
@@ -565,8 +565,8 @@ typedef struct RumBtreeData
565565
OffsetNumber (*findChildPtr) (RumBtree, Page, BlockNumber, OffsetNumber);
566566
BlockNumber (*getLeftMostPage) (RumBtree, Page);
567567
bool (*isEnoughSpace) (RumBtree, Buffer, OffsetNumber);
568-
void (*placeToPage) (RumBtree, Buffer, OffsetNumber, XLogRecData **);
569-
Page (*splitPage) (RumBtree, Buffer, Buffer, OffsetNumber, XLogRecData **);
568+
void (*placeToPage) (RumBtree, Buffer, OffsetNumber, RumXLogRecData **);
569+
Page (*splitPage) (RumBtree, Buffer, Buffer, OffsetNumber, RumXLogRecData **);
570570
void (*fillRoot) (RumBtree, Buffer, Buffer, Buffer);
571571

572572
bool isData;

rumbtree.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ rumInsertValue(RumBtree btree, RumBtreeStack *stack, GinStatsData *buildStats)
366366
/* this loop crawls up the stack until the insertion is complete */
367367
for (;;)
368368
{
369-
XLogRecData *rdata;
369+
RumXLogRecData *rdata;
370370
BlockNumber savedRightLink;
371371

372372
page = BufferGetPage(stack->buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST);

rumdatapage.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -698,13 +698,13 @@ dataPrepareData(RumBtree btree, Page page, OffsetNumber off)
698698
* build mode puts all ItemPointers to page.
699699
*/
700700
static void
701-
dataPlaceToPage(RumBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prdata)
701+
dataPlaceToPage(RumBtree btree, Buffer buf, OffsetNumber off, RumXLogRecData **prdata)
702702
{
703703
Page page = BufferGetPage(buf, NULL, NULL, BGP_NO_SNAPSHOT_TEST);
704704
Form_pg_attribute attr = btree->rumstate->addAttrs[btree->entryAttnum - 1];
705705

706706
/* these must be static so they can be returned to caller */
707-
static XLogRecData rdata[3];
707+
static RumXLogRecData rdata[3];
708708
static rumxlogInsert data;
709709
static char insertData[BLCKSZ];
710710

@@ -731,7 +731,7 @@ dataPlaceToPage(RumBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
731731
/*
732732
* For incomplete-split tracking, we need updateBlkno information and the
733733
* inserted item even when we make a full page image of the page, so put
734-
* the buffer reference in a separate XLogRecData entry.
734+
* the buffer reference in a separate RumXLogRecData entry.
735735
*/
736736
rdata[0].buffer = buf;
737737
rdata[0].buffer_std = FALSE;
@@ -883,7 +883,7 @@ dataPlaceToPage(RumBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
883883
*/
884884
static Page
885885
dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off,
886-
XLogRecData **prdata)
886+
RumXLogRecData **prdata)
887887
{
888888
OffsetNumber i, j,
889889
maxoff;
@@ -903,7 +903,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off,
903903
Form_pg_attribute attr = btree->rumstate->addAttrs[btree->entryAttnum - 1];
904904

905905
/* these must be static so they can be returned to caller */
906-
static XLogRecData rdata[3];
906+
static RumXLogRecData rdata[3];
907907
static rumxlogSplit data;
908908
static char lpageCopy[BLCKSZ];
909909
static char rpageCopy[BLCKSZ];
@@ -1127,7 +1127,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off,
11271127
*/
11281128
static Page
11291129
dataSplitPageInternal(RumBtree btree, Buffer lbuf, Buffer rbuf,
1130-
OffsetNumber off, XLogRecData **prdata)
1130+
OffsetNumber off, RumXLogRecData **prdata)
11311131
{
11321132
char *ptr;
11331133
OffsetNumber separator;
@@ -1144,7 +1144,7 @@ dataSplitPageInternal(RumBtree btree, Buffer lbuf, Buffer rbuf,
11441144

11451145
/* these must be static so they can be returned to caller */
11461146
static rumxlogSplit data;
1147-
static XLogRecData rdata[2];
1147+
static RumXLogRecData rdata[2];
11481148
static char vector[2 * BLCKSZ];
11491149

11501150
RumInitPage(rpage, RumPageGetOpaque(lpage)->flags, pageSize);
@@ -1253,7 +1253,7 @@ dataSplitPageInternal(RumBtree btree, Buffer lbuf, Buffer rbuf,
12531253
*/
12541254
static Page
12551255
dataSplitPage(RumBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off,
1256-
XLogRecData **prdata)
1256+
RumXLogRecData **prdata)
12571257
{
12581258
if (RumPageIsLeaf(BufferGetPage(lbuf, NULL, NULL, BGP_NO_SNAPSHOT_TEST)))
12591259
return dataSplitPageLeaf(btree, lbuf, rbuf, off, prdata);

rumentrypage.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -376,13 +376,13 @@ entryPreparePage(RumBtree btree, Page page, OffsetNumber off)
376376
* Place tuple on page and fills WAL record
377377
*/
378378
static void
379-
entryPlaceToPage(RumBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prdata)
379+
entryPlaceToPage(RumBtree btree, Buffer buf, OffsetNumber off, RumXLogRecData **prdata)
380380
{
381381
Page page = BufferGetPage(buf, NULL, NULL, BGP_NO_SNAPSHOT_TEST);
382382
OffsetNumber placed;
383383

384384
/* these must be static so they can be returned to caller */
385-
static XLogRecData rdata[3];
385+
static RumXLogRecData rdata[3];
386386
static rumxlogInsert data;
387387

388388
*prdata = rdata;
@@ -404,7 +404,7 @@ entryPlaceToPage(RumBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prd
404404
/*
405405
* For incomplete-split tracking, we need updateBlkno information and the
406406
* inserted item even when we make a full page image of the page, so put
407-
* the buffer reference in a separate XLogRecData entry.
407+
* the buffer reference in a separate RumXLogRecData entry.
408408
*/
409409
rdata[0].buffer = buf;
410410
rdata[0].buffer_std = TRUE;
@@ -432,7 +432,8 @@ entryPlaceToPage(RumBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prd
432432
* an equal number!
433433
*/
434434
static Page
435-
entrySplitPage(RumBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogRecData **prdata)
435+
entrySplitPage(RumBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off,
436+
RumXLogRecData **prdata)
436437
{
437438
OffsetNumber i,
438439
maxoff,
@@ -450,7 +451,7 @@ entrySplitPage(RumBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogR
450451
Size pageSize = PageGetPageSize(lpage);
451452

452453
/* these must be static so they can be returned to caller */
453-
static XLogRecData rdata[2];
454+
static RumXLogRecData rdata[2];
454455
static rumxlogSplit data;
455456
static char tupstore[2 * BLCKSZ];
456457

rumfast.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ rumHeapTupleFastInsert(RumState *rumstate, RumTupleCollector *collector)
223223
Buffer metabuffer;
224224
Page metapage;
225225
RumMetaPageData *metadata = NULL;
226-
XLogRecData rdata[2];
226+
RumXLogRecData rdata[2];
227227
Buffer buffer = InvalidBuffer;
228228
Page page = NULL;
229229
rumxlogUpdateMeta data;

ruminsert.c

Lines changed: 49 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
#include "postgres.h"
1515

16+
#include "access/generic_xlog.h"
1617
#include "access/heapam_xlog.h"
1718
#include "catalog/index.h"
1819
#include "miscadmin.h"
@@ -75,38 +76,42 @@ createPostingTree(RumState *rumstate, OffsetNumber attnum, Relation index,
7576

7677
MarkBufferDirty(buffer);
7778

78-
// if (RelationNeedsWAL(index))
79-
// {
80-
// XLogRecPtr recptr;
81-
// XLogRecData rdata[2];
82-
// rumxlogCreatePostingTree data;
83-
//
84-
// data.node = index->rd_node;
85-
// data.blkno = blkno;
86-
// data.nitem = nitems;
87-
//
88-
// if (rumstate->addAttrs[attnum - 1])
89-
// {
90-
// data.typlen = rumstate->addAttrs[attnum - 1]->attlen;
91-
// data.typalign = rumstate->addAttrs[attnum - 1]->attalign;
92-
// data.typbyval = rumstate->addAttrs[attnum - 1]->attbyval;
93-
// data.typstorage = rumstate->addAttrs[attnum - 1]->attstorage;
94-
// }
95-
//
96-
// rdata[0].buffer = InvalidBuffer;
97-
// rdata[0].data = (char *) &data;
98-
// rdata[0].len = MAXALIGN(sizeof(rumxlogCreatePostingTree));
99-
// rdata[0].next = &rdata[1];
100-
//
101-
// memcpy(pageCopy, page, BLCKSZ);
102-
// rdata[1].buffer = InvalidBuffer;
103-
// rdata[1].data = RumDataPageGetData(pageCopy);
104-
// rdata[1].len = RumDataPageSize - RumPageGetOpaque(pageCopy)->freespace;
105-
// rdata[1].next = NULL;
106-
//
107-
// recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_CREATE_PTREE, rdata);
108-
// PageSetLSN(page, recptr);
109-
// }
79+
if (RelationNeedsWAL(index))
80+
{
81+
XLogRecPtr recptr;
82+
XLogRecData rdata[2];
83+
rumxlogCreatePostingTree data;
84+
GenericXLogState *state;
85+
86+
state = GenericXLogStart(index);
87+
GenericXLogFinish(state);
88+
89+
data.node = index->rd_node;
90+
data.blkno = blkno;
91+
data.nitem = nitems;
92+
93+
if (rumstate->addAttrs[attnum - 1])
94+
{
95+
data.typlen = rumstate->addAttrs[attnum - 1]->attlen;
96+
data.typalign = rumstate->addAttrs[attnum - 1]->attalign;
97+
data.typbyval = rumstate->addAttrs[attnum - 1]->attbyval;
98+
data.typstorage = rumstate->addAttrs[attnum - 1]->attstorage;
99+
}
100+
101+
rdata[0].buffer = InvalidBuffer;
102+
rdata[0].data = (char *) &data;
103+
rdata[0].len = MAXALIGN(sizeof(rumxlogCreatePostingTree));
104+
rdata[0].next = &rdata[1];
105+
106+
memcpy(pageCopy, page, BLCKSZ);
107+
rdata[1].buffer = InvalidBuffer;
108+
rdata[1].data = RumDataPageGetData(pageCopy);
109+
rdata[1].len = RumDataPageSize - RumPageGetOpaque(pageCopy)->freespace;
110+
rdata[1].next = NULL;
111+
112+
recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_CREATE_PTREE, rdata);
113+
PageSetLSN(page, recptr);
114+
}
110115

111116
UnlockReleaseBuffer(buffer);
112117

@@ -654,25 +659,18 @@ rumbuild(Relation heap, Relation index, struct IndexInfo *indexInfo)
654659
RumInitBuffer(RootBuffer, RUM_LEAF);
655660
MarkBufferDirty(RootBuffer);
656661

657-
// if (RelationNeedsWAL(index))
658-
// {
659-
// XLogRecPtr recptr;
660-
// XLogRecData rdata;
661-
// Page page;
662-
//
663-
// rdata.buffer = InvalidBuffer;
664-
// rdata.data = (char *) &(index->rd_node);
665-
// rdata.len = sizeof(RelFileNode);
666-
// rdata.next = NULL;
667-
//
668-
// recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_CREATE_INDEX, &rdata);
669-
//
670-
// page = BufferGetPage(RootBuffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST);
671-
// PageSetLSN(page, recptr);
672-
//
673-
// page = BufferGetPage(MetaBuffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST);
674-
// PageSetLSN(page, recptr);
675-
// }
662+
if (RelationNeedsWAL(index))
663+
{
664+
GenericXLogState *state;
665+
666+
state = GenericXLogStart(index);
667+
GenericXLogRegisterBuffer(state, RootBuffer, GENERIC_XLOG_FULL_IMAGE);
668+
GenericXLogFinish(state);
669+
670+
state = GenericXLogStart(index);
671+
GenericXLogRegisterBuffer(state, MetaBuffer, GENERIC_XLOG_FULL_IMAGE);
672+
GenericXLogFinish(state);
673+
}
676674

677675
UnlockReleaseBuffer(MetaBuffer);
678676
UnlockReleaseBuffer(RootBuffer);

0 commit comments

Comments
 (0)