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

Commit6177a5b

Browse files
author
Artur Zakirov
committed
rum module is compiled
1 parent8e42d5a commit6177a5b

File tree

12 files changed

+4489
-1332
lines changed

12 files changed

+4489
-1332
lines changed

‎Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
# contrib/rum/Makefile
22

33
MODULE_big = rum
4-
OBJS = ginarrayproc.o ginbtree.o ginbulk.o gindatapage.o\
4+
OBJS = ginsort.o\
5+
ginarrayproc.o ginbtree.o ginbulk.o gindatapage.o\
56
ginentrypage.o ginfast.o ginget.o gininsert.o\
6-
ginscan.o ginutil.o ginvacuum.oginxlog.o$(WIN32RES)
7+
ginscan.o ginutil.o ginvacuum.o$(WIN32RES)
78

89
EXTENSION = rum
910
DATA = rum--1.0.sql

‎gindatapage.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -739,6 +739,7 @@ dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
739739
rdata[0].data=NULL;
740740
rdata[0].len=0;
741741
rdata[0].next=&rdata[1];
742+
XLogBeginInsert();
742743

743744
rdata[1].buffer=InvalidBuffer;
744745
rdata[1].data= (char*)&data;
@@ -747,13 +748,15 @@ dataPlaceToPage(GinBtree btree, Buffer buf, OffsetNumber off, XLogRecData **prda
747748

748749
if (GinPageIsLeaf(page))
749750
{
750-
inti=0,j,max_j;
751-
Pointerptr=GinDataPageGetData(page),copy_ptr,insertStart;
751+
inti=0,j,max_j;
752+
Pointerptr=GinDataPageGetData(page),
753+
copy_ptr=NULL,
754+
insertStart;
752755
ItemPointerDataiptr= {{0,0},0},copy_iptr;
753-
charpageCopy[BLCKSZ];
754-
DatumaddInfo=0;
755-
booladdInfoIsNull= false;
756-
intmaxoff=GinPageGetOpaque(page)->maxoff;
756+
charpageCopy[BLCKSZ];
757+
DatumaddInfo=0;
758+
booladdInfoIsNull= false;
759+
intmaxoff=GinPageGetOpaque(page)->maxoff;
757760

758761
/*
759762
* We're going to prevent var-byte re-encoding of whole page.

‎ginfast.c

Lines changed: 59 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -107,30 +107,30 @@ writeListPage(Relation index, Buffer buffer,
107107

108108
MarkBufferDirty(buffer);
109109

110-
if (RelationNeedsWAL(index))
111-
{
112-
XLogRecDatardata[2];
113-
ginxlogInsertListPagedata;
114-
XLogRecPtrrecptr;
115-
116-
data.node=index->rd_node;
117-
data.blkno=BufferGetBlockNumber(buffer);
118-
data.rightlink=rightlink;
119-
data.ntuples=ntuples;
120-
121-
rdata[0].buffer=InvalidBuffer;
122-
rdata[0].data= (char*)&data;
123-
rdata[0].len=sizeof(ginxlogInsertListPage);
124-
rdata[0].next=rdata+1;
125-
126-
rdata[1].buffer=InvalidBuffer;
127-
rdata[1].data=workspace;
128-
rdata[1].len=size;
129-
rdata[1].next=NULL;
130-
131-
recptr=XLogInsert(RM_GIN_ID,XLOG_GIN_INSERT_LISTPAGE,rdata);
132-
PageSetLSN(page,recptr);
133-
}
110+
//if (RelationNeedsWAL(index))
111+
//{
112+
//XLogRecData rdata[2];
113+
//ginxlogInsertListPage data;
114+
//XLogRecPtrrecptr;
115+
//
116+
//data.node = index->rd_node;
117+
//data.blkno = BufferGetBlockNumber(buffer);
118+
//data.rightlink = rightlink;
119+
//data.ntuples = ntuples;
120+
//
121+
//rdata[0].buffer = InvalidBuffer;
122+
//rdata[0].data = (char *) &data;
123+
//rdata[0].len = sizeof(ginxlogInsertListPage);
124+
//rdata[0].next = rdata + 1;
125+
//
126+
//rdata[1].buffer = InvalidBuffer;
127+
//rdata[1].data = workspace;
128+
//rdata[1].len = size;
129+
//rdata[1].next = NULL;
130+
//
131+
//recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_INSERT_LISTPAGE, rdata);
132+
//PageSetLSN(page, recptr);
133+
//}
134134

135135
/* get free space before releasing buffer */
136136
freesize=PageGetExactFreeSpace(page);
@@ -402,20 +402,20 @@ ginHeapTupleFastInsert(GinState *ginstate, GinTupleCollector *collector)
402402
*/
403403
MarkBufferDirty(metabuffer);
404404

405-
if (RelationNeedsWAL(index))
406-
{
407-
XLogRecPtrrecptr;
408-
409-
memcpy(&data.metadata,metadata,sizeof(GinMetaPageData));
410-
411-
recptr=XLogInsert(RM_GIN_ID,XLOG_GIN_UPDATE_META_PAGE,rdata);
412-
PageSetLSN(metapage,recptr);
413-
414-
if (buffer!=InvalidBuffer)
415-
{
416-
PageSetLSN(page,recptr);
417-
}
418-
}
405+
//if (RelationNeedsWAL(index))
406+
//{
407+
//XLogRecPtrrecptr;
408+
//
409+
//memcpy(&data.metadata, metadata, sizeof(GinMetaPageData));
410+
//
411+
//recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_UPDATE_META_PAGE, rdata);
412+
//PageSetLSN(metapage, recptr);
413+
//
414+
//if (buffer != InvalidBuffer)
415+
//{
416+
//PageSetLSN(page, recptr);
417+
//}
418+
//}
419419

420420
if (buffer!=InvalidBuffer)
421421
UnlockReleaseBuffer(buffer);
@@ -614,15 +614,15 @@ shiftList(Relation index, Buffer metabuffer, BlockNumber newHead,
614614
inti;
615615
int64nDeletedHeapTuples=0;
616616
ginxlogDeleteListPagesdata;
617-
XLogRecDatardata[1];
617+
//XLogRecData rdata[1];
618618
Bufferbuffers[GIN_NDELETE_AT_ONCE];
619619

620620
data.node=index->rd_node;
621621

622-
rdata[0].buffer=InvalidBuffer;
623-
rdata[0].data= (char*)&data;
624-
rdata[0].len=sizeof(ginxlogDeleteListPages);
625-
rdata[0].next=NULL;
622+
//rdata[0].buffer = InvalidBuffer;
623+
//rdata[0].data = (char *) &data;
624+
//rdata[0].len = sizeof(ginxlogDeleteListPages);
625+
//rdata[0].next = NULL;
626626

627627
data.ndeleted=0;
628628
while (data.ndeleted<GIN_NDELETE_AT_ONCE&&blknoToDelete!=newHead)
@@ -677,22 +677,22 @@ shiftList(Relation index, Buffer metabuffer, BlockNumber newHead,
677677
MarkBufferDirty(buffers[i]);
678678
}
679679

680-
if (RelationNeedsWAL(index))
681-
{
682-
XLogRecPtrrecptr;
683-
684-
memcpy(&data.metadata,metadata,sizeof(GinMetaPageData));
685-
686-
recptr=XLogInsert(RM_GIN_ID,XLOG_GIN_DELETE_LISTPAGE,rdata);
687-
PageSetLSN(metapage,recptr);
688-
689-
for (i=0;i<data.ndeleted;i++)
690-
{
691-
page=BufferGetPage(buffers[i],NULL,NULL,
692-
BGP_NO_SNAPSHOT_TEST);
693-
PageSetLSN(page,recptr);
694-
}
695-
}
680+
//if (RelationNeedsWAL(index))
681+
//{
682+
//XLogRecPtrrecptr;
683+
//
684+
//memcpy(&data.metadata, metadata, sizeof(GinMetaPageData));
685+
//
686+
//recptr = XLogInsert(RM_GIN_ID, XLOG_GIN_DELETE_LISTPAGE, rdata);
687+
//PageSetLSN(metapage, recptr);
688+
//
689+
//for (i = 0; i < data.ndeleted; i++)
690+
//{
691+
//page = BufferGetPage(buffers[i], NULL, NULL,
692+
// BGP_NO_SNAPSHOT_TEST);
693+
//PageSetLSN(page, recptr);
694+
//}
695+
//}
696696

697697
for (i=0;i<data.ndeleted;i++)
698698
UnlockReleaseBuffer(buffers[i]);

‎ginget.c

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
*/
1414

1515
#include"postgres.h"
16+
#include"ginsort.h"
1617

1718
#include"access/relscan.h"
1819
#include"miscadmin.h"
@@ -1513,7 +1514,6 @@ scanGetItemFast(IndexScanDesc scan, ItemPointer advancePast,
15131514
for (i=0;i<so->nkeys;i++)
15141515
{
15151516
GinScanKeykey=so->keys+i;
1516-
ItemPointeriptr;
15171517

15181518
if (key->orderBy)
15191519
continue;
@@ -1536,7 +1536,6 @@ scanGetItemFast(IndexScanDesc scan, ItemPointer advancePast,
15361536
key->addInfoIsNull[j]= true;
15371537
}
15381538
}
1539-
iptr=&so->sortedEntries[so->totalentries-1]->curItem;
15401539
if (!callConsistentFn(&so->ginstate,key))
15411540
{
15421541
consistentFalse= true;
@@ -2074,11 +2073,9 @@ scanPendingInsert(IndexScanDesc scan)
20742073
#defineGinIsNewKey(s)( ((GinScanOpaque) scan->opaque)->keys == NULL )
20752074
#defineGinIsVoidRes(s)( ((GinScanOpaque) scan->opaque)->isVoidRes )
20762075

2077-
Datum
2078-
gingetbitmap(PG_FUNCTION_ARGS)
2076+
int64
2077+
gingetbitmap(IndexScanDescscan,TIDBitmap*tbm)
20792078
{
2080-
IndexScanDescscan= (IndexScanDesc)PG_GETARG_POINTER(0);
2081-
TIDBitmap*tbm= (TIDBitmap*)PG_GETARG_POINTER(1);
20822079
GinScanOpaqueso= (GinScanOpaque)scan->opaque;
20832080
int64ntids;
20842081
boolrecheck;
@@ -2090,7 +2087,7 @@ gingetbitmap(PG_FUNCTION_ARGS)
20902087
ginNewScanKey(scan);
20912088

20922089
if (GinIsVoidRes(scan))
2093-
PG_RETURN_INT64(0);
2090+
return0;
20942091

20952092
ntids=0;
20962093

@@ -2127,7 +2124,7 @@ gingetbitmap(PG_FUNCTION_ARGS)
21272124
ntids++;
21282125
}
21292126

2130-
PG_RETURN_INT64(ntids);
2127+
returnntids;
21312128
}
21322129

21332130
staticfloat8

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp