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

Commit152f5b3

Browse files
author
Artur Zakirov
committed
XLogRecData was renamed
1 parentb259931 commit152f5b3

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-
typedefstructXLogRecData
24+
typedefstructRumXLogRecData
2525
{
2626
char*data;/* start of rmgr data to include */
2727
uint32len;/* length of rmgr data to include */
2828
Bufferbuffer;/* buffer associated with data, if any */
2929
boolbuffer_std;/* buffer has standard pd_lower/pd_upper */
30-
structXLogRecData*next;/* next struct in chain, or NULL */
31-
}XLogRecData;
30+
structRumXLogRecData*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
boolisData;

‎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
BlockNumbersavedRightLink;
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
staticvoid
701-
dataPlaceToPage(RumBtreebtree,Bufferbuf,OffsetNumberoff,XLogRecData**prdata)
701+
dataPlaceToPage(RumBtreebtree,Bufferbuf,OffsetNumberoff,RumXLogRecData**prdata)
702702
{
703703
Pagepage=BufferGetPage(buf,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
704704
Form_pg_attributeattr=btree->rumstate->addAttrs[btree->entryAttnum-1];
705705

706706
/* these must be static so they can be returned to caller */
707-
staticXLogRecDatardata[3];
707+
staticRumXLogRecDatardata[3];
708708
staticrumxlogInsertdata;
709709
staticcharinsertData[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 separateXLogRecData entry.
734+
* the buffer reference in a separateRumXLogRecData 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
staticPage
885885
dataSplitPageLeaf(RumBtreebtree,Bufferlbuf,Bufferrbuf,OffsetNumberoff,
886-
XLogRecData**prdata)
886+
RumXLogRecData**prdata)
887887
{
888888
OffsetNumberi,j,
889889
maxoff;
@@ -903,7 +903,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off,
903903
Form_pg_attributeattr=btree->rumstate->addAttrs[btree->entryAttnum-1];
904904

905905
/* these must be static so they can be returned to caller */
906-
staticXLogRecDatardata[3];
906+
staticRumXLogRecDatardata[3];
907907
staticrumxlogSplitdata;
908908
staticcharlpageCopy[BLCKSZ];
909909
staticcharrpageCopy[BLCKSZ];
@@ -1127,7 +1127,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off,
11271127
*/
11281128
staticPage
11291129
dataSplitPageInternal(RumBtreebtree,Bufferlbuf,Bufferrbuf,
1130-
OffsetNumberoff,XLogRecData**prdata)
1130+
OffsetNumberoff,RumXLogRecData**prdata)
11311131
{
11321132
char*ptr;
11331133
OffsetNumberseparator;
@@ -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
staticrumxlogSplitdata;
1147-
staticXLogRecDatardata[2];
1147+
staticRumXLogRecDatardata[2];
11481148
staticcharvector[2*BLCKSZ];
11491149

11501150
RumInitPage(rpage,RumPageGetOpaque(lpage)->flags,pageSize);
@@ -1253,7 +1253,7 @@ dataSplitPageInternal(RumBtree btree, Buffer lbuf, Buffer rbuf,
12531253
*/
12541254
staticPage
12551255
dataSplitPage(RumBtreebtree,Bufferlbuf,Bufferrbuf,OffsetNumberoff,
1256-
XLogRecData**prdata)
1256+
RumXLogRecData**prdata)
12571257
{
12581258
if (RumPageIsLeaf(BufferGetPage(lbuf,NULL,NULL,BGP_NO_SNAPSHOT_TEST)))
12591259
returndataSplitPageLeaf(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
staticvoid
379-
entryPlaceToPage(RumBtreebtree,Bufferbuf,OffsetNumberoff,XLogRecData**prdata)
379+
entryPlaceToPage(RumBtreebtree,Bufferbuf,OffsetNumberoff,RumXLogRecData**prdata)
380380
{
381381
Pagepage=BufferGetPage(buf,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
382382
OffsetNumberplaced;
383383

384384
/* these must be static so they can be returned to caller */
385-
staticXLogRecDatardata[3];
385+
staticRumXLogRecDatardata[3];
386386
staticrumxlogInsertdata;
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 separateXLogRecData entry.
407+
* the buffer reference in a separateRumXLogRecData 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
staticPage
435-
entrySplitPage(RumBtreebtree,Bufferlbuf,Bufferrbuf,OffsetNumberoff,XLogRecData**prdata)
435+
entrySplitPage(RumBtreebtree,Bufferlbuf,Bufferrbuf,OffsetNumberoff,
436+
RumXLogRecData**prdata)
436437
{
437438
OffsetNumberi,
438439
maxoff,
@@ -450,7 +451,7 @@ entrySplitPage(RumBtree btree, Buffer lbuf, Buffer rbuf, OffsetNumber off, XLogR
450451
SizepageSize=PageGetPageSize(lpage);
451452

452453
/* these must be static so they can be returned to caller */
453-
staticXLogRecDatardata[2];
454+
staticRumXLogRecDatardata[2];
454455
staticrumxlogSplitdata;
455456
staticchartupstore[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
Buffermetabuffer;
224224
Pagemetapage;
225225
RumMetaPageData*metadata=NULL;
226-
XLogRecDatardata[2];
226+
RumXLogRecDatardata[2];
227227
Bufferbuffer=InvalidBuffer;
228228
Pagepage=NULL;
229229
rumxlogUpdateMetadata;

‎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-
// XLogRecPtrrecptr;
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+
XLogRecPtrrecptr;
82+
XLogRecDatardata[2];
83+
rumxlogCreatePostingTreedata;
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-
// XLogRecPtrrecptr;
660-
// XLogRecData rdata;
661-
// Pagepage;
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)

[8]ページ先頭

©2009-2025 Movatter.jp