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

Commita343e22

Browse files
committed
Revert no-op changes to BufferGetPage()
The reverted changes were intended to force a choice of whether anynewly-added BufferGetPage() calls needed to be accompanied by atest of the snapshot age, to support the "snapshot too old"feature. Such an accompanying test is needed in about 7% of thecases, where the page is being used as part of a scan rather thanpositioning for other purposes (such as DML or vacuuming). Theadditional effort required for back-patching, and the doubt whetherthe intended benefit would really be there, have indicated it isbest just to rely on developers to do the right thing based oncomments and existing usage, as we do with many other conventions.This change should have little or no effect on generated executablecode.Motivated by the back-patching pain of Tom Lane and Robert Haas
1 parent4db0d2d commita343e22

File tree

65 files changed

+550
-736
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+550
-736
lines changed

‎contrib/bloom/blinsert.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,7 @@ blinsert(Relation index, Datum *values, bool *isnull,
204204
*/
205205
metaBuffer=ReadBuffer(index,BLOOM_METAPAGE_BLKNO);
206206
LockBuffer(metaBuffer,BUFFER_LOCK_SHARE);
207-
metaData=BloomPageGetMeta(BufferGetPage(metaBuffer,NULL,NULL,
208-
BGP_NO_SNAPSHOT_TEST));
207+
metaData=BloomPageGetMeta(BufferGetPage(metaBuffer));
209208

210209
if (metaData->nEnd>metaData->nStart)
211210
{

‎contrib/bloom/blscan.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ blgetbitmap(IndexScanDesc scan, TIDBitmap *tbm)
138138
blkno,RBM_NORMAL,bas);
139139

140140
LockBuffer(buffer,BUFFER_LOCK_SHARE);
141-
page=BufferGetPage(buffer,scan->xs_snapshot,scan->indexRelation,
142-
BGP_TEST_FOR_OLD_SNAPSHOT);
141+
page=BufferGetPage(buffer);
142+
TestForOldSnapshot(scan->xs_snapshot,scan->indexRelation,page);
143143

144144
if (!BloomPageIsDeleted(page))
145145
{

‎contrib/bloom/blutils.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,12 +139,11 @@ initBloomState(BloomState *state, Relation index)
139139
buffer=ReadBuffer(index,BLOOM_METAPAGE_BLKNO);
140140
LockBuffer(buffer,BUFFER_LOCK_SHARE);
141141

142-
page=BufferGetPage(buffer,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
142+
page=BufferGetPage(buffer);
143143

144144
if (!BloomPageIsMeta(page))
145145
elog(ERROR,"Relation is not a bloom index");
146-
meta=BloomPageGetMeta(BufferGetPage(buffer,NULL,NULL,
147-
BGP_NO_SNAPSHOT_TEST));
146+
meta=BloomPageGetMeta(BufferGetPage(buffer));
148147

149148
if (meta->magickNumber!=BLOOM_MAGICK_NUMBER)
150149
elog(ERROR,"Relation is not a bloom index");
@@ -317,8 +316,7 @@ BloomNewBuffer(Relation index)
317316
*/
318317
if (ConditionalLockBuffer(buffer))
319318
{
320-
Pagepage=BufferGetPage(buffer,NULL,NULL,
321-
BGP_NO_SNAPSHOT_TEST);
319+
Pagepage=BufferGetPage(buffer);
322320

323321
if (PageIsNew(page))
324322
returnbuffer;/* OK to use, if never initialized */

‎contrib/bloom/blvacuum.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ blvacuumcleanup(IndexVacuumInfo *info, IndexBulkDeleteResult *stats)
194194
buffer=ReadBufferExtended(index,MAIN_FORKNUM,blkno,
195195
RBM_NORMAL,info->strategy);
196196
LockBuffer(buffer,BUFFER_LOCK_SHARE);
197-
page=BufferGetPage(buffer,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
197+
page=(Page)BufferGetPage(buffer);
198198

199199
if (BloomPageIsDeleted(page))
200200
{

‎contrib/pageinspect/btreefuncs.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ typedef struct BTPageStat
9090
staticvoid
9191
GetBTPageStatistics(BlockNumberblkno,Bufferbuffer,BTPageStat*stat)
9292
{
93-
Pagepage=BufferGetPage(buffer,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
93+
Pagepage=BufferGetPage(buffer);
9494
PageHeaderphdr= (PageHeader)page;
9595
OffsetNumbermaxoff=PageGetMaxOffsetNumber(page);
9696
BTPageOpaqueopaque= (BTPageOpaque)PageGetSpecialPointer(page);
@@ -317,9 +317,7 @@ bt_page_items(PG_FUNCTION_ARGS)
317317
uargs=palloc(sizeof(structuser_args));
318318

319319
uargs->page=palloc(BLCKSZ);
320-
memcpy(uargs->page,
321-
BufferGetPage(buffer,NULL,NULL,BGP_NO_SNAPSHOT_TEST),
322-
BLCKSZ);
320+
memcpy(uargs->page,BufferGetPage(buffer),BLCKSZ);
323321

324322
UnlockReleaseBuffer(buffer);
325323
relation_close(rel,AccessShareLock);
@@ -449,7 +447,7 @@ bt_metap(PG_FUNCTION_ARGS)
449447
buffer=ReadBuffer(rel,0);
450448
LockBuffer(buffer,BUFFER_LOCK_SHARE);
451449

452-
page=BufferGetPage(buffer,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
450+
page=BufferGetPage(buffer);
453451
metad=BTPageGetMeta(page);
454452

455453
/* Build a tuple descriptor for our result type */

‎contrib/pageinspect/rawpage.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,7 @@ get_raw_page_internal(text *relname, ForkNumber forknum, BlockNumber blkno)
147147
buf=ReadBufferExtended(rel,forknum,blkno,RBM_NORMAL,NULL);
148148
LockBuffer(buf,BUFFER_LOCK_SHARE);
149149

150-
memcpy(raw_page_data,
151-
BufferGetPage(buf,NULL,NULL,BGP_NO_SNAPSHOT_TEST),
152-
BLCKSZ);
150+
memcpy(raw_page_data,BufferGetPage(buf),BLCKSZ);
153151

154152
LockBuffer(buf,BUFFER_LOCK_UNLOCK);
155153
ReleaseBuffer(buf);

‎contrib/pg_visibility/pg_visibility.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ pg_visibility(PG_FUNCTION_ARGS)
107107
buffer=ReadBuffer(rel,blkno);
108108
LockBuffer(buffer,BUFFER_LOCK_SHARE);
109109

110-
page=BufferGetPage(buffer,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
110+
page=BufferGetPage(buffer);
111111
values[2]=BoolGetDatum(PageIsAllVisible(page));
112112

113113
UnlockReleaseBuffer(buffer);
@@ -333,7 +333,7 @@ collect_visibility_data(Oid relid, bool include_pd)
333333
bstrategy);
334334
LockBuffer(buffer,BUFFER_LOCK_SHARE);
335335

336-
page=BufferGetPage(buffer,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
336+
page=BufferGetPage(buffer);
337337
if (PageIsAllVisible(page))
338338
info->bits[blkno] |= (1 <<2);
339339

‎contrib/pgstattuple/pgstatapprox.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ statapprox_heap(Relation rel, output_type *stat)
100100

101101
LockBuffer(buf,BUFFER_LOCK_SHARE);
102102

103-
page=BufferGetPage(buf,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
103+
page=BufferGetPage(buf);
104104

105105
/*
106106
* It's not safe to call PageGetHeapFreeSpace() on new pages, so we

‎contrib/pgstattuple/pgstatindex.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ pgstatindex_impl(Relation rel, FunctionCallInfo fcinfo)
173173
*/
174174
{
175175
Bufferbuffer=ReadBufferExtended(rel,MAIN_FORKNUM,0,RBM_NORMAL,bstrategy);
176-
Pagepage=BufferGetPage(buffer,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
176+
Pagepage=BufferGetPage(buffer);
177177
BTMetaPageData*metad=BTPageGetMeta(page);
178178

179179
indexStat.version=metad->btm_version;
@@ -211,7 +211,7 @@ pgstatindex_impl(Relation rel, FunctionCallInfo fcinfo)
211211
buffer=ReadBufferExtended(rel,MAIN_FORKNUM,blkno,RBM_NORMAL,bstrategy);
212212
LockBuffer(buffer,BUFFER_LOCK_SHARE);
213213

214-
page=BufferGetPage(buffer,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
214+
page=BufferGetPage(buffer);
215215
opaque= (BTPageOpaque)PageGetSpecialPointer(page);
216216

217217
/* Determine page type, and update totals */
@@ -399,7 +399,7 @@ pgstatginindex(PG_FUNCTION_ARGS)
399399
*/
400400
buffer=ReadBuffer(rel,GIN_METAPAGE_BLKNO);
401401
LockBuffer(buffer,GIN_SHARE);
402-
page=BufferGetPage(buffer,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
402+
page=BufferGetPage(buffer);
403403
metadata=GinPageGetMeta(page);
404404

405405
stats.version=metadata->ginVersion;

‎contrib/pgstattuple/pgstattuple.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -320,8 +320,7 @@ pgstat_heap(Relation rel, FunctionCallInfo fcinfo)
320320
buffer=ReadBufferExtended(rel,MAIN_FORKNUM,block,
321321
RBM_NORMAL,scan->rs_strategy);
322322
LockBuffer(buffer,BUFFER_LOCK_SHARE);
323-
stat.free_space+=PageGetHeapFreeSpace
324-
(BufferGetPage(buffer,NULL,NULL,BGP_NO_SNAPSHOT_TEST));
323+
stat.free_space+=PageGetHeapFreeSpace((Page)BufferGetPage(buffer));
325324
UnlockReleaseBuffer(buffer);
326325
block++;
327326
}
@@ -334,8 +333,7 @@ pgstat_heap(Relation rel, FunctionCallInfo fcinfo)
334333
buffer=ReadBufferExtended(rel,MAIN_FORKNUM,block,
335334
RBM_NORMAL,scan->rs_strategy);
336335
LockBuffer(buffer,BUFFER_LOCK_SHARE);
337-
stat.free_space+=PageGetHeapFreeSpace
338-
(BufferGetPage(buffer,NULL,NULL,BGP_NO_SNAPSHOT_TEST));
336+
stat.free_space+=PageGetHeapFreeSpace((Page)BufferGetPage(buffer));
339337
UnlockReleaseBuffer(buffer);
340338
block++;
341339
}
@@ -360,7 +358,7 @@ pgstat_btree_page(pgstattuple_type *stat, Relation rel, BlockNumber blkno,
360358

361359
buf=ReadBufferExtended(rel,MAIN_FORKNUM,blkno,RBM_NORMAL,bstrategy);
362360
LockBuffer(buf,BT_READ);
363-
page=BufferGetPage(buf,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
361+
page=BufferGetPage(buf);
364362

365363
/* Page is valid, see what to do with it */
366364
if (PageIsNew(page))
@@ -404,7 +402,7 @@ pgstat_hash_page(pgstattuple_type *stat, Relation rel, BlockNumber blkno,
404402

405403
_hash_getlock(rel,blkno,HASH_SHARE);
406404
buf=_hash_getbuf_with_strategy(rel,blkno,HASH_READ,0,bstrategy);
407-
page=BufferGetPage(buf,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
405+
page=BufferGetPage(buf);
408406

409407
if (PageGetSpecialSize(page)==MAXALIGN(sizeof(HashPageOpaqueData)))
410408
{
@@ -449,7 +447,7 @@ pgstat_gist_page(pgstattuple_type *stat, Relation rel, BlockNumber blkno,
449447
buf=ReadBufferExtended(rel,MAIN_FORKNUM,blkno,RBM_NORMAL,bstrategy);
450448
LockBuffer(buf,GIST_SHARE);
451449
gistcheckpage(rel,buf);
452-
page=BufferGetPage(buf,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
450+
page=BufferGetPage(buf);
453451

454452
if (GistPageIsLeaf(page))
455453
{

‎src/backend/access/brin/brin.c

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,7 @@ brininsert(Relation idxRel, Datum *values, bool *nulls,
208208
}
209209
else
210210
{
211-
Pagepage=BufferGetPage(buf,NULL,NULL,
212-
BGP_NO_SNAPSHOT_TEST);
211+
Pagepage=BufferGetPage(buf);
213212
ItemIdlp=PageGetItemId(page,off);
214213
Sizeorigsz;
215214
BrinTuple*origtup;
@@ -620,8 +619,7 @@ brinbuild(Relation heap, Relation index, IndexInfo *indexInfo)
620619
Assert(BufferGetBlockNumber(meta)==BRIN_METAPAGE_BLKNO);
621620
LockBuffer(meta,BUFFER_LOCK_EXCLUSIVE);
622621

623-
brin_metapage_init(BufferGetPage(meta,NULL,NULL,BGP_NO_SNAPSHOT_TEST),
624-
BrinGetPagesPerRange(index),
622+
brin_metapage_init(BufferGetPage(meta),BrinGetPagesPerRange(index),
625623
BRIN_CURRENT_VERSION);
626624
MarkBufferDirty(meta);
627625

@@ -640,7 +638,7 @@ brinbuild(Relation heap, Relation index, IndexInfo *indexInfo)
640638

641639
recptr=XLogInsert(RM_BRIN_ID,XLOG_BRIN_CREATE_INDEX);
642640

643-
page=BufferGetPage(meta,NULL,NULL,BGP_NO_SNAPSHOT_TEST);
641+
page=BufferGetPage(meta);
644642
PageSetLSN(page,recptr);
645643
}
646644

@@ -690,9 +688,7 @@ brinbuildempty(Relation index)
690688

691689
/* Initialize and xlog metabuffer. */
692690
START_CRIT_SECTION();
693-
brin_metapage_init(BufferGetPage(metabuf,NULL,NULL,
694-
BGP_NO_SNAPSHOT_TEST),
695-
BrinGetPagesPerRange(index),
691+
brin_metapage_init(BufferGetPage(metabuf),BrinGetPagesPerRange(index),
696692
BRIN_CURRENT_VERSION);
697693
MarkBufferDirty(metabuf);
698694
log_newpage_buffer(metabuf, false);
@@ -947,8 +943,7 @@ terminate_brin_buildstate(BrinBuildState *state)
947943
{
948944
Pagepage;
949945

950-
page=BufferGetPage(state->bs_currentInsertBuf,NULL,NULL,
951-
BGP_NO_SNAPSHOT_TEST);
946+
page=BufferGetPage(state->bs_currentInsertBuf);
952947
RecordPageWithFreeSpace(state->bs_irel,
953948
BufferGetBlockNumber(state->bs_currentInsertBuf),
954949
PageGetFreeSpace(page));

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp