@@ -29,7 +29,7 @@ ginTraverseLock(Buffer buffer, bool searchMode)
29
29
int access = GIN_SHARE ;
30
30
31
31
LockBuffer (buffer , GIN_SHARE );
32
- page = BufferGetPage (buffer );
32
+ page = BufferGetPage (buffer , NULL , NULL , BGP_NO_SNAPSHOT_TEST );
33
33
if (GinPageIsLeaf (page ))
34
34
{
35
35
if (searchMode == FALSE)
@@ -74,8 +74,6 @@ ginPrepareFindLeafPage(GinBtree btree, BlockNumber blkno)
74
74
GinBtreeStack *
75
75
ginReFindLeafPage (GinBtree btree , GinBtreeStack * stack )
76
76
{
77
- bool found = false;
78
-
79
77
while (stack -> parent )
80
78
{
81
79
GinBtreeStack * ptr ;
@@ -91,14 +89,13 @@ ginReFindLeafPage(GinBtree btree, GinBtreeStack *stack)
91
89
stack = stack -> parent ;
92
90
pfree (ptr );
93
91
94
- page = BufferGetPage (stack -> buffer );
92
+ page = BufferGetPage (stack -> buffer , NULL , NULL , BGP_NO_SNAPSHOT_TEST );
95
93
maxoff = GinPageGetOpaque (page )-> maxoff ;
96
94
97
95
if (ginCompareItemPointers (
98
96
& (((PostingItem * )GinDataPageGetItem (page , maxoff - 1 ))-> key ),
99
97
btree -> items + btree -> curitem ) >= 0 )
100
98
{
101
- found = true;
102
99
break ;
103
100
}
104
101
}
@@ -128,7 +125,7 @@ ginFindLeafPage(GinBtree btree, GinBtreeStack *stack)
128
125
129
126
stack -> off = InvalidOffsetNumber ;
130
127
131
- page = BufferGetPage (stack -> buffer );
128
+ page = BufferGetPage (stack -> buffer , NULL , NULL , BGP_NO_SNAPSHOT_TEST );
132
129
133
130
if (isfirst )
134
131
{
@@ -154,7 +151,8 @@ ginFindLeafPage(GinBtree btree, GinBtreeStack *stack)
154
151
155
152
stack -> buffer = ginStepRight (stack -> buffer , btree -> index , access );
156
153
stack -> blkno = rightlink ;
157
- page = BufferGetPage (stack -> buffer );
154
+ page = BufferGetPage (stack -> buffer , NULL , NULL ,
155
+ BGP_NO_SNAPSHOT_TEST );
158
156
}
159
157
160
158
if (GinPageIsLeaf (page )) /* we found, return locked page */
@@ -205,7 +203,7 @@ Buffer
205
203
ginStepRight (Buffer buffer , Relation index , int lockmode )
206
204
{
207
205
Buffer nextbuffer ;
208
- Page page = BufferGetPage (buffer );
206
+ Page page = BufferGetPage (buffer , NULL , NULL , BGP_NO_SNAPSHOT_TEST );
209
207
bool isLeaf = GinPageIsLeaf (page );
210
208
bool isData = GinPageIsData (page );
211
209
BlockNumber blkno = GinPageGetOpaque (page )-> rightlink ;
@@ -215,7 +213,7 @@ ginStepRight(Buffer buffer, Relation index, int lockmode)
215
213
UnlockReleaseBuffer (buffer );
216
214
217
215
/* Sanity check that the page we stepped to is of similar kind. */
218
- page = BufferGetPage (nextbuffer );
216
+ page = BufferGetPage (nextbuffer , NULL , NULL , BGP_NO_SNAPSHOT_TEST );
219
217
if (isLeaf != GinPageIsLeaf (page ) || isData != GinPageIsData (page ))
220
218
elog (ERROR , "right sibling of GIN page is of different type" );
221
219
@@ -289,7 +287,7 @@ ginFindParents(GinBtree btree, GinBtreeStack *stack,
289
287
}
290
288
root -> off = InvalidOffsetNumber ;
291
289
292
- page = BufferGetPage (root -> buffer );
290
+ page = BufferGetPage (root -> buffer , NULL , NULL , BGP_NO_SNAPSHOT_TEST );
293
291
Assert (!GinPageIsLeaf (page ));
294
292
295
293
/* check trivial case */
@@ -307,7 +305,7 @@ ginFindParents(GinBtree btree, GinBtreeStack *stack,
307
305
{
308
306
buffer = ReadBuffer (btree -> index , blkno );
309
307
LockBuffer (buffer , GIN_EXCLUSIVE );
310
- page = BufferGetPage (buffer );
308
+ page = BufferGetPage (buffer , NULL , NULL , BGP_NO_SNAPSHOT_TEST );
311
309
if (GinPageIsLeaf (page ))
312
310
elog (ERROR , "Lost path" );
313
311
@@ -322,7 +320,7 @@ ginFindParents(GinBtree btree, GinBtreeStack *stack,
322
320
break ;
323
321
}
324
322
buffer = ginStepRight (buffer , btree -> index , GIN_EXCLUSIVE );
325
- page = BufferGetPage (buffer );
323
+ page = BufferGetPage (buffer , NULL , NULL , BGP_NO_SNAPSHOT_TEST );
326
324
}
327
325
328
326
if (blkno != InvalidBlockNumber )
@@ -372,7 +370,7 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats)
372
370
XLogRecData * rdata ;
373
371
BlockNumber savedRightLink ;
374
372
375
- page = BufferGetPage (stack -> buffer );
373
+ page = BufferGetPage (stack -> buffer , NULL , NULL , BGP_NO_SNAPSHOT_TEST );
376
374
savedRightLink = GinPageGetOpaque (page )-> rightlink ;
377
375
378
376
if (btree -> isEnoughSpace (btree , stack -> buffer , stack -> off ))
@@ -386,7 +384,7 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats)
386
384
{
387
385
XLogRecPtr recptr ;
388
386
389
- recptr = XLogInsert (RM_GIN_ID , XLOG_GIN_INSERT , rdata );
387
+ recptr = XLogInsert (RM_GIN_ID , XLOG_GIN_INSERT );
390
388
PageSetLSN (page , recptr );
391
389
}
392
390
@@ -432,9 +430,12 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats)
432
430
((ginxlogSplit * ) (rdata -> data ))-> isRootSplit = TRUE;
433
431
((ginxlogSplit * ) (rdata -> data ))-> rrlink = InvalidBlockNumber ;
434
432
435
- page = BufferGetPage (stack -> buffer );
436
- lpage = BufferGetPage (lbuffer );
437
- rpage = BufferGetPage (rbuffer );
433
+ page = BufferGetPage (stack -> buffer , NULL , NULL ,
434
+ BGP_NO_SNAPSHOT_TEST );
435
+ lpage = BufferGetPage (lbuffer , NULL , NULL ,
436
+ BGP_NO_SNAPSHOT_TEST );
437
+ rpage = BufferGetPage (rbuffer , NULL , NULL ,
438
+ BGP_NO_SNAPSHOT_TEST );
438
439
439
440
GinPageGetOpaque (rpage )-> rightlink = InvalidBlockNumber ;
440
441
GinPageGetOpaque (newlpage )-> rightlink = BufferGetBlockNumber (rbuffer );
@@ -454,7 +455,7 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats)
454
455
{
455
456
XLogRecPtr recptr ;
456
457
457
- recptr = XLogInsert (RM_GIN_ID , XLOG_GIN_SPLIT , rdata );
458
+ recptr = XLogInsert (RM_GIN_ID , XLOG_GIN_SPLIT );
458
459
PageSetLSN (page , recptr );
459
460
PageSetLSN (lpage , recptr );
460
461
PageSetLSN (rpage , recptr );
@@ -484,8 +485,10 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats)
484
485
((ginxlogSplit * ) (rdata -> data ))-> isRootSplit = FALSE;
485
486
((ginxlogSplit * ) (rdata -> data ))-> rrlink = savedRightLink ;
486
487
487
- lpage = BufferGetPage (stack -> buffer );
488
- rpage = BufferGetPage (rbuffer );
488
+ lpage = BufferGetPage (stack -> buffer , NULL , NULL ,
489
+ BGP_NO_SNAPSHOT_TEST );
490
+ rpage = BufferGetPage (rbuffer , NULL , NULL ,
491
+ BGP_NO_SNAPSHOT_TEST );
489
492
490
493
GinPageGetOpaque (rpage )-> rightlink = savedRightLink ;
491
494
GinPageGetOpaque (newlpage )-> rightlink = BufferGetBlockNumber (rbuffer );
@@ -500,7 +503,7 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats)
500
503
{
501
504
XLogRecPtr recptr ;
502
505
503
- recptr = XLogInsert (RM_GIN_ID , XLOG_GIN_SPLIT , rdata );
506
+ recptr = XLogInsert (RM_GIN_ID , XLOG_GIN_SPLIT );
504
507
PageSetLSN (lpage , recptr );
505
508
PageSetLSN (rpage , recptr );
506
509
}
@@ -515,7 +518,7 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats)
515
518
LockBuffer (parent -> buffer , GIN_EXCLUSIVE );
516
519
517
520
/* move right if it's needed */
518
- page = BufferGetPage (parent -> buffer );
521
+ page = BufferGetPage (parent -> buffer , NULL , NULL , BGP_NO_SNAPSHOT_TEST );
519
522
while ((parent -> off = btree -> findChildPtr (btree , page , stack -> blkno , parent -> off )) == InvalidOffsetNumber )
520
523
{
521
524
BlockNumber rightlink = GinPageGetOpaque (page )-> rightlink ;
@@ -535,7 +538,8 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats)
535
538
536
539
parent -> buffer = ginStepRight (parent -> buffer , btree -> index , GIN_EXCLUSIVE );
537
540
parent -> blkno = rightlink ;
538
- page = BufferGetPage (parent -> buffer );
541
+ page = BufferGetPage (parent -> buffer , NULL , NULL ,
542
+ BGP_NO_SNAPSHOT_TEST );
539
543
}
540
544
541
545
UnlockReleaseBuffer (stack -> buffer );
0 commit comments