Remove unneeded casts of BufferGetPage() result

BufferGetPage() already returns type Page, so casting it to Page
doesn't achieve anything.  A sizable number of call sites does this
casting; remove that.

This was already done inconsistently in the code in the first import
in 1996 (but didn't exist in the pre-1995 code), and it was then
apparently just copied around.

Author: Kirill Reshke <reshkekirill@gmail.com>
Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Reviewed-by: Richard Guo <guofenglinux@gmail.com>
Reviewed-by: Álvaro Herrera <alvherre@kurilemu.de>
Reviewed-by: Peter Eisentraut <peter@eisentraut.org>
Discussion: https://www.postgresql.org/message-id/flat/CALdSSPgFhc5=vLqHdk-zCcnztC0zEY3EU_Q6a9vPEaw7FkE9Vw@mail.gmail.com
master
Peter Eisentraut 2 weeks ago
parent 97b0f36bde
commit 710e6c4301
  1. 4
      contrib/amcheck/verify_gin.c
  2. 2
      contrib/bloom/blvacuum.c
  3. 2
      contrib/pgstattuple/pgstatindex.c
  4. 4
      contrib/pgstattuple/pgstattuple.c
  5. 12
      src/backend/access/brin/brin_xlog.c
  6. 2
      src/backend/access/gin/ginvacuum.c
  7. 4
      src/backend/access/gin/ginxlog.c
  8. 14
      src/backend/access/gist/gist.c
  9. 4
      src/backend/access/gist/gistbuild.c
  10. 4
      src/backend/access/gist/gistvacuum.c
  11. 10
      src/backend/access/gist/gistxlog.c
  12. 18
      src/backend/access/hash/hash_xlog.c
  13. 2
      src/backend/access/heap/heapam.c
  14. 2
      src/backend/access/heap/heapam_handler.c
  15. 8
      src/backend/access/heap/heapam_xlog.c
  16. 2
      src/backend/access/heap/pruneheap.c
  17. 2
      src/backend/access/heap/visibilitymap.c
  18. 28
      src/backend/access/nbtree/nbtxlog.c
  19. 4
      src/backend/access/spgist/spgvacuum.c
  20. 6
      src/backend/access/spgist/spgxlog.c
  21. 2
      src/backend/access/transam/xlogutils.c
  22. 2
      src/backend/commands/sequence.c

@ -174,7 +174,7 @@ gin_check_posting_tree_parent_keys_consistency(Relation rel, BlockNumber posting
buffer = ReadBufferExtended(rel, MAIN_FORKNUM, stack->blkno, buffer = ReadBufferExtended(rel, MAIN_FORKNUM, stack->blkno,
RBM_NORMAL, strategy); RBM_NORMAL, strategy);
LockBuffer(buffer, GIN_SHARE); LockBuffer(buffer, GIN_SHARE);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
Assert(GinPageIsData(page)); Assert(GinPageIsData(page));
@ -434,7 +434,7 @@ gin_check_parent_keys_consistency(Relation rel,
buffer = ReadBufferExtended(rel, MAIN_FORKNUM, stack->blkno, buffer = ReadBufferExtended(rel, MAIN_FORKNUM, stack->blkno,
RBM_NORMAL, strategy); RBM_NORMAL, strategy);
LockBuffer(buffer, GIN_SHARE); LockBuffer(buffer, GIN_SHARE);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
maxoff = PageGetMaxOffsetNumber(page); maxoff = PageGetMaxOffsetNumber(page);
rightlink = GinPageGetOpaque(page)->rightlink; rightlink = GinPageGetOpaque(page)->rightlink;

@ -192,7 +192,7 @@ blvacuumcleanup(IndexVacuumInfo *info, IndexBulkDeleteResult *stats)
buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno, buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno,
RBM_NORMAL, info->strategy); RBM_NORMAL, info->strategy);
LockBuffer(buffer, BUFFER_LOCK_SHARE); LockBuffer(buffer, BUFFER_LOCK_SHARE);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
if (PageIsNew(page) || BloomPageIsDeleted(page)) if (PageIsNew(page) || BloomPageIsDeleted(page))
{ {

@ -647,7 +647,7 @@ pgstathashindex(PG_FUNCTION_ARGS)
buf = ReadBufferExtended(rel, MAIN_FORKNUM, blkno, RBM_NORMAL, buf = ReadBufferExtended(rel, MAIN_FORKNUM, blkno, RBM_NORMAL,
bstrategy); bstrategy);
LockBuffer(buf, BUFFER_LOCK_SHARE); LockBuffer(buf, BUFFER_LOCK_SHARE);
page = (Page) BufferGetPage(buf); page = BufferGetPage(buf);
if (PageIsNew(page)) if (PageIsNew(page))
stats.unused_pages++; stats.unused_pages++;

@ -378,7 +378,7 @@ pgstat_heap(Relation rel, FunctionCallInfo fcinfo)
buffer = ReadBufferExtended(rel, MAIN_FORKNUM, block, buffer = ReadBufferExtended(rel, MAIN_FORKNUM, block,
RBM_NORMAL, hscan->rs_strategy); RBM_NORMAL, hscan->rs_strategy);
LockBuffer(buffer, BUFFER_LOCK_SHARE); LockBuffer(buffer, BUFFER_LOCK_SHARE);
stat.free_space += PageGetExactFreeSpace((Page) BufferGetPage(buffer)); stat.free_space += PageGetExactFreeSpace(BufferGetPage(buffer));
UnlockReleaseBuffer(buffer); UnlockReleaseBuffer(buffer);
block++; block++;
} }
@ -391,7 +391,7 @@ pgstat_heap(Relation rel, FunctionCallInfo fcinfo)
buffer = ReadBufferExtended(rel, MAIN_FORKNUM, block, buffer = ReadBufferExtended(rel, MAIN_FORKNUM, block,
RBM_NORMAL, hscan->rs_strategy); RBM_NORMAL, hscan->rs_strategy);
LockBuffer(buffer, BUFFER_LOCK_SHARE); LockBuffer(buffer, BUFFER_LOCK_SHARE);
stat.free_space += PageGetExactFreeSpace((Page) BufferGetPage(buffer)); stat.free_space += PageGetExactFreeSpace(BufferGetPage(buffer));
UnlockReleaseBuffer(buffer); UnlockReleaseBuffer(buffer);
block++; block++;
} }

@ -31,7 +31,7 @@ brin_xlog_createidx(XLogReaderState *record)
/* create the index' metapage */ /* create the index' metapage */
buf = XLogInitBufferForRedo(record, 0); buf = XLogInitBufferForRedo(record, 0);
Assert(BufferIsValid(buf)); Assert(BufferIsValid(buf));
page = (Page) BufferGetPage(buf); page = BufferGetPage(buf);
brin_metapage_init(page, xlrec->pagesPerRange, xlrec->version); brin_metapage_init(page, xlrec->pagesPerRange, xlrec->version);
PageSetLSN(page, lsn); PageSetLSN(page, lsn);
MarkBufferDirty(buf); MarkBufferDirty(buf);
@ -82,7 +82,7 @@ brin_xlog_insert_update(XLogReaderState *record,
Assert(tuple->bt_blkno == xlrec->heapBlk); Assert(tuple->bt_blkno == xlrec->heapBlk);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
offnum = xlrec->offnum; offnum = xlrec->offnum;
if (PageGetMaxOffsetNumber(page) + 1 < offnum) if (PageGetMaxOffsetNumber(page) + 1 < offnum)
elog(PANIC, "brin_xlog_insert_update: invalid max offset number"); elog(PANIC, "brin_xlog_insert_update: invalid max offset number");
@ -104,7 +104,7 @@ brin_xlog_insert_update(XLogReaderState *record,
ItemPointerData tid; ItemPointerData tid;
ItemPointerSet(&tid, regpgno, xlrec->offnum); ItemPointerSet(&tid, regpgno, xlrec->offnum);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
brinSetHeapBlockItemptr(buffer, xlrec->pagesPerRange, xlrec->heapBlk, brinSetHeapBlockItemptr(buffer, xlrec->pagesPerRange, xlrec->heapBlk,
tid); tid);
@ -146,7 +146,7 @@ brin_xlog_update(XLogReaderState *record)
Page page; Page page;
OffsetNumber offnum; OffsetNumber offnum;
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
offnum = xlrec->oldOffnum; offnum = xlrec->oldOffnum;
@ -185,7 +185,7 @@ brin_xlog_samepage_update(XLogReaderState *record)
brintuple = (BrinTuple *) XLogRecGetBlockData(record, 0, &tuplen); brintuple = (BrinTuple *) XLogRecGetBlockData(record, 0, &tuplen);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
offnum = xlrec->offnum; offnum = xlrec->offnum;
@ -254,7 +254,7 @@ brin_xlog_revmap_extend(XLogReaderState *record)
*/ */
buf = XLogInitBufferForRedo(record, 1); buf = XLogInitBufferForRedo(record, 1);
page = (Page) BufferGetPage(buf); page = BufferGetPage(buf);
brin_page_init(page, BRIN_PAGETYPE_REVMAP); brin_page_init(page, BRIN_PAGETYPE_REVMAP);
PageSetLSN(page, lsn); PageSetLSN(page, lsn);

@ -753,7 +753,7 @@ ginvacuumcleanup(IndexVacuumInfo *info, IndexBulkDeleteResult *stats)
buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno, buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno,
RBM_NORMAL, info->strategy); RBM_NORMAL, info->strategy);
LockBuffer(buffer, GIN_SHARE); LockBuffer(buffer, GIN_SHARE);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
if (GinPageIsRecyclable(page)) if (GinPageIsRecyclable(page))
{ {

@ -30,7 +30,7 @@ ginRedoClearIncompleteSplit(XLogReaderState *record, uint8 block_id)
if (XLogReadBufferForRedo(record, block_id, &buffer) == BLK_NEEDS_REDO) if (XLogReadBufferForRedo(record, block_id, &buffer) == BLK_NEEDS_REDO)
{ {
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
GinPageGetOpaque(page)->flags &= ~GIN_INCOMPLETE_SPLIT; GinPageGetOpaque(page)->flags &= ~GIN_INCOMPLETE_SPLIT;
PageSetLSN(page, lsn); PageSetLSN(page, lsn);
@ -50,7 +50,7 @@ ginRedoCreatePTree(XLogReaderState *record)
Page page; Page page;
buffer = XLogInitBufferForRedo(record, 0); buffer = XLogInitBufferForRedo(record, 0);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
GinInitBuffer(buffer, GIN_DATA | GIN_LEAF | GIN_COMPRESSED); GinInitBuffer(buffer, GIN_DATA | GIN_LEAF | GIN_COMPRESSED);

@ -696,7 +696,7 @@ gistdoinsert(Relation r, IndexTuple itup, Size freespace,
gistcheckpage(state.r, stack->buffer); gistcheckpage(state.r, stack->buffer);
} }
stack->page = (Page) BufferGetPage(stack->buffer); stack->page = BufferGetPage(stack->buffer);
stack->lsn = xlocked ? stack->lsn = xlocked ?
PageGetLSN(stack->page) : BufferGetLSNAtomic(stack->buffer); PageGetLSN(stack->page) : BufferGetLSNAtomic(stack->buffer);
Assert(!RelationNeedsWAL(state.r) || !XLogRecPtrIsInvalid(stack->lsn)); Assert(!RelationNeedsWAL(state.r) || !XLogRecPtrIsInvalid(stack->lsn));
@ -783,7 +783,7 @@ gistdoinsert(Relation r, IndexTuple itup, Size freespace,
LockBuffer(stack->buffer, GIST_UNLOCK); LockBuffer(stack->buffer, GIST_UNLOCK);
LockBuffer(stack->buffer, GIST_EXCLUSIVE); LockBuffer(stack->buffer, GIST_EXCLUSIVE);
xlocked = true; xlocked = true;
stack->page = (Page) BufferGetPage(stack->buffer); stack->page = BufferGetPage(stack->buffer);
if (PageGetLSN(stack->page) != stack->lsn) if (PageGetLSN(stack->page) != stack->lsn)
{ {
@ -847,7 +847,7 @@ gistdoinsert(Relation r, IndexTuple itup, Size freespace,
LockBuffer(stack->buffer, GIST_UNLOCK); LockBuffer(stack->buffer, GIST_UNLOCK);
LockBuffer(stack->buffer, GIST_EXCLUSIVE); LockBuffer(stack->buffer, GIST_EXCLUSIVE);
xlocked = true; xlocked = true;
stack->page = (Page) BufferGetPage(stack->buffer); stack->page = BufferGetPage(stack->buffer);
stack->lsn = PageGetLSN(stack->page); stack->lsn = PageGetLSN(stack->page);
if (stack->blkno == GIST_ROOT_BLKNO) if (stack->blkno == GIST_ROOT_BLKNO)
@ -938,7 +938,7 @@ gistFindPath(Relation r, BlockNumber child, OffsetNumber *downlinkoffnum)
buffer = ReadBuffer(r, top->blkno); buffer = ReadBuffer(r, top->blkno);
LockBuffer(buffer, GIST_SHARE); LockBuffer(buffer, GIST_SHARE);
gistcheckpage(r, buffer); gistcheckpage(r, buffer);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
if (GistPageIsLeaf(page)) if (GistPageIsLeaf(page))
{ {
@ -1033,7 +1033,7 @@ gistFindCorrectParent(Relation r, GISTInsertStack *child, bool is_build)
GISTInsertStack *ptr; GISTInsertStack *ptr;
gistcheckpage(r, parent->buffer); gistcheckpage(r, parent->buffer);
parent->page = (Page) BufferGetPage(parent->buffer); parent->page = BufferGetPage(parent->buffer);
maxoff = PageGetMaxOffsetNumber(parent->page); maxoff = PageGetMaxOffsetNumber(parent->page);
/* Check if the downlink is still where it was before */ /* Check if the downlink is still where it was before */
@ -1098,7 +1098,7 @@ gistFindCorrectParent(Relation r, GISTInsertStack *child, bool is_build)
parent->buffer = ReadBuffer(r, parent->blkno); parent->buffer = ReadBuffer(r, parent->blkno);
LockBuffer(parent->buffer, GIST_EXCLUSIVE); LockBuffer(parent->buffer, GIST_EXCLUSIVE);
gistcheckpage(r, parent->buffer); gistcheckpage(r, parent->buffer);
parent->page = (Page) BufferGetPage(parent->buffer); parent->page = BufferGetPage(parent->buffer);
} }
/* /*
@ -1121,7 +1121,7 @@ gistFindCorrectParent(Relation r, GISTInsertStack *child, bool is_build)
while (ptr) while (ptr)
{ {
ptr->buffer = ReadBuffer(r, ptr->blkno); ptr->buffer = ReadBuffer(r, ptr->blkno);
ptr->page = (Page) BufferGetPage(ptr->buffer); ptr->page = BufferGetPage(ptr->buffer);
ptr = ptr->parent; ptr = ptr->parent;
} }

@ -969,7 +969,7 @@ gistProcessItup(GISTBuildState *buildstate, IndexTuple itup,
buffer = ReadBuffer(indexrel, blkno); buffer = ReadBuffer(indexrel, blkno);
LockBuffer(buffer, GIST_EXCLUSIVE); LockBuffer(buffer, GIST_EXCLUSIVE);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
childoffnum = gistchoose(indexrel, page, itup, giststate); childoffnum = gistchoose(indexrel, page, itup, giststate);
iid = PageGetItemId(page, childoffnum); iid = PageGetItemId(page, childoffnum);
idxtuple = (IndexTuple) PageGetItem(page, iid); idxtuple = (IndexTuple) PageGetItem(page, iid);
@ -1448,7 +1448,7 @@ gistGetMaxLevel(Relation index)
* pro forma. * pro forma.
*/ */
LockBuffer(buffer, GIST_SHARE); LockBuffer(buffer, GIST_SHARE);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
if (GistPageIsLeaf(page)) if (GistPageIsLeaf(page))
{ {

@ -330,7 +330,7 @@ restart:
* exclusive lock. * exclusive lock.
*/ */
LockBuffer(buffer, GIST_EXCLUSIVE); LockBuffer(buffer, GIST_EXCLUSIVE);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
if (gistPageRecyclable(page)) if (gistPageRecyclable(page))
{ {
@ -528,7 +528,7 @@ gistvacuum_delete_empty_pages(IndexVacuumInfo *info, GistVacState *vstate)
RBM_NORMAL, info->strategy); RBM_NORMAL, info->strategy);
LockBuffer(buffer, GIST_SHARE); LockBuffer(buffer, GIST_SHARE);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
if (PageIsNew(page) || GistPageIsDeleted(page) || GistPageIsLeaf(page)) if (PageIsNew(page) || GistPageIsDeleted(page) || GistPageIsLeaf(page))
{ {

@ -83,7 +83,7 @@ gistRedoPageUpdateRecord(XLogReaderState *record)
data = begin = XLogRecGetBlockData(record, 0, &datalen); data = begin = XLogRecGetBlockData(record, 0, &datalen);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
if (xldata->ntodelete == 1 && xldata->ntoinsert == 1) if (xldata->ntodelete == 1 && xldata->ntoinsert == 1)
{ {
@ -201,7 +201,7 @@ gistRedoDeleteRecord(XLogReaderState *record)
if (XLogReadBufferForRedo(record, 0, &buffer) == BLK_NEEDS_REDO) if (XLogReadBufferForRedo(record, 0, &buffer) == BLK_NEEDS_REDO)
{ {
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
PageIndexMultiDelete(page, toDelete, xldata->ntodelete); PageIndexMultiDelete(page, toDelete, xldata->ntodelete);
@ -280,7 +280,7 @@ gistRedoPageSplitRecord(XLogReaderState *record)
} }
buffer = XLogInitBufferForRedo(record, i + 1); buffer = XLogInitBufferForRedo(record, i + 1);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
data = XLogRecGetBlockData(record, i + 1, &datalen); data = XLogRecGetBlockData(record, i + 1, &datalen);
tuples = decodePageSplitRecord(data, datalen, &num); tuples = decodePageSplitRecord(data, datalen, &num);
@ -348,7 +348,7 @@ gistRedoPageDelete(XLogReaderState *record)
if (XLogReadBufferForRedo(record, 0, &leafBuffer) == BLK_NEEDS_REDO) if (XLogReadBufferForRedo(record, 0, &leafBuffer) == BLK_NEEDS_REDO)
{ {
Page page = (Page) BufferGetPage(leafBuffer); Page page = BufferGetPage(leafBuffer);
GistPageSetDeleted(page, xldata->deleteXid); GistPageSetDeleted(page, xldata->deleteXid);
@ -358,7 +358,7 @@ gistRedoPageDelete(XLogReaderState *record)
if (XLogReadBufferForRedo(record, 1, &parentBuffer) == BLK_NEEDS_REDO) if (XLogReadBufferForRedo(record, 1, &parentBuffer) == BLK_NEEDS_REDO)
{ {
Page page = (Page) BufferGetPage(parentBuffer); Page page = BufferGetPage(parentBuffer);
PageIndexTupleDelete(page, xldata->downlinkOffset); PageIndexTupleDelete(page, xldata->downlinkOffset);

@ -38,7 +38,7 @@ hash_xlog_init_meta_page(XLogReaderState *record)
Assert(BufferIsValid(metabuf)); Assert(BufferIsValid(metabuf));
_hash_init_metabuffer(metabuf, xlrec->num_tuples, xlrec->procid, _hash_init_metabuffer(metabuf, xlrec->num_tuples, xlrec->procid,
xlrec->ffactor, true); xlrec->ffactor, true);
page = (Page) BufferGetPage(metabuf); page = BufferGetPage(metabuf);
PageSetLSN(page, lsn); PageSetLSN(page, lsn);
MarkBufferDirty(metabuf); MarkBufferDirty(metabuf);
@ -235,7 +235,7 @@ hash_xlog_add_ovfl_page(XLogReaderState *record)
if (XLogReadBufferForRedo(record, 2, &mapbuffer) == BLK_NEEDS_REDO) if (XLogReadBufferForRedo(record, 2, &mapbuffer) == BLK_NEEDS_REDO)
{ {
Page mappage = (Page) BufferGetPage(mapbuffer); Page mappage = BufferGetPage(mapbuffer);
uint32 *freep = NULL; uint32 *freep = NULL;
uint32 *bitmap_page_bit; uint32 *bitmap_page_bit;
@ -538,7 +538,7 @@ hash_xlog_move_page_contents(XLogReaderState *record)
data = begin = XLogRecGetBlockData(record, 1, &datalen); data = begin = XLogRecGetBlockData(record, 1, &datalen);
writepage = (Page) BufferGetPage(writebuf); writepage = BufferGetPage(writebuf);
if (xldata->ntups > 0) if (xldata->ntups > 0)
{ {
@ -584,7 +584,7 @@ hash_xlog_move_page_contents(XLogReaderState *record)
ptr = XLogRecGetBlockData(record, 2, &len); ptr = XLogRecGetBlockData(record, 2, &len);
page = (Page) BufferGetPage(deletebuf); page = BufferGetPage(deletebuf);
if (len > 0) if (len > 0)
{ {
@ -670,7 +670,7 @@ hash_xlog_squeeze_page(XLogReaderState *record)
data = begin = XLogRecGetBlockData(record, 1, &datalen); data = begin = XLogRecGetBlockData(record, 1, &datalen);
writepage = (Page) BufferGetPage(writebuf); writepage = BufferGetPage(writebuf);
if (xldata->ntups > 0) if (xldata->ntups > 0)
{ {
@ -807,7 +807,7 @@ hash_xlog_squeeze_page(XLogReaderState *record)
/* replay the record for bitmap page */ /* replay the record for bitmap page */
if (XLogReadBufferForRedo(record, 5, &mapbuf) == BLK_NEEDS_REDO) if (XLogReadBufferForRedo(record, 5, &mapbuf) == BLK_NEEDS_REDO)
{ {
Page mappage = (Page) BufferGetPage(mapbuf); Page mappage = BufferGetPage(mapbuf);
uint32 *freep = NULL; uint32 *freep = NULL;
char *data; char *data;
uint32 *bitmap_page_bit; uint32 *bitmap_page_bit;
@ -895,7 +895,7 @@ hash_xlog_delete(XLogReaderState *record)
ptr = XLogRecGetBlockData(record, 1, &len); ptr = XLogRecGetBlockData(record, 1, &len);
page = (Page) BufferGetPage(deletebuf); page = BufferGetPage(deletebuf);
if (len > 0) if (len > 0)
{ {
@ -946,7 +946,7 @@ hash_xlog_split_cleanup(XLogReaderState *record)
{ {
HashPageOpaque bucket_opaque; HashPageOpaque bucket_opaque;
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
bucket_opaque = HashPageGetOpaque(page); bucket_opaque = HashPageGetOpaque(page);
bucket_opaque->hasho_flag &= ~LH_BUCKET_NEEDS_SPLIT_CLEANUP; bucket_opaque->hasho_flag &= ~LH_BUCKET_NEEDS_SPLIT_CLEANUP;
@ -1029,7 +1029,7 @@ hash_xlog_vacuum_one_page(XLogReaderState *record)
if (action == BLK_NEEDS_REDO) if (action == BLK_NEEDS_REDO)
{ {
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
PageIndexMultiDelete(page, toDelete, xldata->ntuples); PageIndexMultiDelete(page, toDelete, xldata->ntuples);

@ -6099,7 +6099,7 @@ heap_finish_speculative(Relation relation, ItemPointer tid)
buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid)); buffer = ReadBuffer(relation, ItemPointerGetBlockNumber(tid));
LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE); LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
offnum = ItemPointerGetOffsetNumber(tid); offnum = ItemPointerGetOffsetNumber(tid);
if (PageGetMaxOffsetNumber(page) >= offnum) if (PageGetMaxOffsetNumber(page) >= offnum)

@ -2280,7 +2280,7 @@ heapam_scan_sample_next_tuple(TableScanDesc scan, SampleScanState *scanstate,
if (!pagemode) if (!pagemode)
LockBuffer(hscan->rs_cbuf, BUFFER_LOCK_SHARE); LockBuffer(hscan->rs_cbuf, BUFFER_LOCK_SHARE);
page = (Page) BufferGetPage(hscan->rs_cbuf); page = BufferGetPage(hscan->rs_cbuf);
all_visible = PageIsAllVisible(page) && all_visible = PageIsAllVisible(page) &&
!scan->rs_snapshot->takenDuringRecovery; !scan->rs_snapshot->takenDuringRecovery;
maxoffset = PageGetMaxOffsetNumber(page); maxoffset = PageGetMaxOffsetNumber(page);

@ -78,7 +78,7 @@ heap_xlog_prune_freeze(XLogReaderState *record)
&buffer); &buffer);
if (action == BLK_NEEDS_REDO) if (action == BLK_NEEDS_REDO)
{ {
Page page = (Page) BufferGetPage(buffer); Page page = BufferGetPage(buffer);
OffsetNumber *redirected; OffsetNumber *redirected;
OffsetNumber *nowdead; OffsetNumber *nowdead;
OffsetNumber *nowunused; OffsetNumber *nowunused;
@ -599,7 +599,7 @@ heap_xlog_multi_insert(XLogReaderState *record)
tupdata = XLogRecGetBlockData(record, 0, &len); tupdata = XLogRecGetBlockData(record, 0, &len);
endptr = tupdata + len; endptr = tupdata + len;
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
for (i = 0; i < xlrec->ntuples; i++) for (i = 0; i < xlrec->ntuples; i++)
{ {
@ -801,7 +801,7 @@ heap_xlog_update(XLogReaderState *record, bool hot_update)
else if (XLogRecGetInfo(record) & XLOG_HEAP_INIT_PAGE) else if (XLogRecGetInfo(record) & XLOG_HEAP_INIT_PAGE)
{ {
nbuffer = XLogInitBufferForRedo(record, 0); nbuffer = XLogInitBufferForRedo(record, 0);
page = (Page) BufferGetPage(nbuffer); page = BufferGetPage(nbuffer);
PageInit(page, BufferGetPageSize(nbuffer), 0); PageInit(page, BufferGetPageSize(nbuffer), 0);
newaction = BLK_NEEDS_REDO; newaction = BLK_NEEDS_REDO;
} }
@ -1027,7 +1027,7 @@ heap_xlog_lock(XLogReaderState *record)
if (XLogReadBufferForRedo(record, 0, &buffer) == BLK_NEEDS_REDO) if (XLogReadBufferForRedo(record, 0, &buffer) == BLK_NEEDS_REDO)
{ {
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
offnum = xlrec->offnum; offnum = xlrec->offnum;
if (PageGetMaxOffsetNumber(page) >= offnum) if (PageGetMaxOffsetNumber(page) >= offnum)

@ -1563,7 +1563,7 @@ heap_page_prune_execute(Buffer buffer, bool lp_truncate_only,
OffsetNumber *nowdead, int ndead, OffsetNumber *nowdead, int ndead,
OffsetNumber *nowunused, int nunused) OffsetNumber *nowunused, int nunused)
{ {
Page page = (Page) BufferGetPage(buffer); Page page = BufferGetPage(buffer);
OffsetNumber *offnum; OffsetNumber *offnum;
HeapTupleHeader htup PG_USED_FOR_ASSERTS_ONLY; HeapTupleHeader htup PG_USED_FOR_ASSERTS_ONLY;

@ -259,7 +259,7 @@ visibilitymap_set(Relation rel, BlockNumber heapBlk, Buffer heapBuf,
#endif #endif
Assert(InRecovery || XLogRecPtrIsInvalid(recptr)); Assert(InRecovery || XLogRecPtrIsInvalid(recptr));
Assert(InRecovery || PageIsAllVisible((Page) BufferGetPage(heapBuf))); Assert(InRecovery || PageIsAllVisible(BufferGetPage(heapBuf)));
Assert((flags & VISIBILITYMAP_VALID_BITS) == flags); Assert((flags & VISIBILITYMAP_VALID_BITS) == flags);
/* Must never set all_frozen bit without also setting all_visible bit */ /* Must never set all_frozen bit without also setting all_visible bit */

@ -143,7 +143,7 @@ _bt_clear_incomplete_split(XLogReaderState *record, uint8 block_id)
if (XLogReadBufferForRedo(record, block_id, &buf) == BLK_NEEDS_REDO) if (XLogReadBufferForRedo(record, block_id, &buf) == BLK_NEEDS_REDO)
{ {
Page page = (Page) BufferGetPage(buf); Page page = BufferGetPage(buf);
BTPageOpaque pageop = BTPageGetOpaque(page); BTPageOpaque pageop = BTPageGetOpaque(page);
Assert(P_INCOMPLETE_SPLIT(pageop)); Assert(P_INCOMPLETE_SPLIT(pageop));
@ -287,7 +287,7 @@ btree_xlog_split(bool newitemonleft, XLogReaderState *record)
/* Reconstruct right (new) sibling page from scratch */ /* Reconstruct right (new) sibling page from scratch */
rbuf = XLogInitBufferForRedo(record, 1); rbuf = XLogInitBufferForRedo(record, 1);
datapos = XLogRecGetBlockData(record, 1, &datalen); datapos = XLogRecGetBlockData(record, 1, &datalen);
rpage = (Page) BufferGetPage(rbuf); rpage = BufferGetPage(rbuf);
_bt_pageinit(rpage, BufferGetPageSize(rbuf)); _bt_pageinit(rpage, BufferGetPageSize(rbuf));
ropaque = BTPageGetOpaque(rpage); ropaque = BTPageGetOpaque(rpage);
@ -314,7 +314,7 @@ btree_xlog_split(bool newitemonleft, XLogReaderState *record)
* checking possible. See also _bt_restore_page(), which does the * checking possible. See also _bt_restore_page(), which does the
* same for the right page. * same for the right page.
*/ */
Page origpage = (Page) BufferGetPage(buf); Page origpage = BufferGetPage(buf);
BTPageOpaque oopaque = BTPageGetOpaque(origpage); BTPageOpaque oopaque = BTPageGetOpaque(origpage);
OffsetNumber off; OffsetNumber off;
IndexTuple newitem = NULL, IndexTuple newitem = NULL,
@ -439,7 +439,7 @@ btree_xlog_split(bool newitemonleft, XLogReaderState *record)
if (XLogReadBufferForRedo(record, 2, &sbuf) == BLK_NEEDS_REDO) if (XLogReadBufferForRedo(record, 2, &sbuf) == BLK_NEEDS_REDO)
{ {
Page spage = (Page) BufferGetPage(sbuf); Page spage = BufferGetPage(sbuf);
BTPageOpaque spageop = BTPageGetOpaque(spage); BTPageOpaque spageop = BTPageGetOpaque(spage);
spageop->btpo_prev = rightpagenumber; spageop->btpo_prev = rightpagenumber;
@ -470,7 +470,7 @@ btree_xlog_dedup(XLogReaderState *record)
if (XLogReadBufferForRedo(record, 0, &buf) == BLK_NEEDS_REDO) if (XLogReadBufferForRedo(record, 0, &buf) == BLK_NEEDS_REDO)
{ {
char *ptr = XLogRecGetBlockData(record, 0, NULL); char *ptr = XLogRecGetBlockData(record, 0, NULL);
Page page = (Page) BufferGetPage(buf); Page page = BufferGetPage(buf);
BTPageOpaque opaque = BTPageGetOpaque(page); BTPageOpaque opaque = BTPageGetOpaque(page);
OffsetNumber offnum, OffsetNumber offnum,
minoff, minoff,
@ -614,7 +614,7 @@ btree_xlog_vacuum(XLogReaderState *record)
{ {
char *ptr = XLogRecGetBlockData(record, 0, NULL); char *ptr = XLogRecGetBlockData(record, 0, NULL);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
if (xlrec->nupdated > 0) if (xlrec->nupdated > 0)
{ {
@ -680,7 +680,7 @@ btree_xlog_delete(XLogReaderState *record)
{ {
char *ptr = XLogRecGetBlockData(record, 0, NULL); char *ptr = XLogRecGetBlockData(record, 0, NULL);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
if (xlrec->nupdated > 0) if (xlrec->nupdated > 0)
{ {
@ -740,7 +740,7 @@ btree_xlog_mark_page_halfdead(uint8 info, XLogReaderState *record)
OffsetNumber nextoffset; OffsetNumber nextoffset;
BlockNumber rightsib; BlockNumber rightsib;
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
pageop = BTPageGetOpaque(page); pageop = BTPageGetOpaque(page);
poffset = xlrec->poffset; poffset = xlrec->poffset;
@ -769,7 +769,7 @@ btree_xlog_mark_page_halfdead(uint8 info, XLogReaderState *record)
/* Rewrite the leaf page as a halfdead page */ /* Rewrite the leaf page as a halfdead page */
buffer = XLogInitBufferForRedo(record, 0); buffer = XLogInitBufferForRedo(record, 0);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
_bt_pageinit(page, BufferGetPageSize(buffer)); _bt_pageinit(page, BufferGetPageSize(buffer));
pageop = BTPageGetOpaque(page); pageop = BTPageGetOpaque(page);
@ -836,7 +836,7 @@ btree_xlog_unlink_page(uint8 info, XLogReaderState *record)
{ {
if (XLogReadBufferForRedo(record, 1, &leftbuf) == BLK_NEEDS_REDO) if (XLogReadBufferForRedo(record, 1, &leftbuf) == BLK_NEEDS_REDO)
{ {
page = (Page) BufferGetPage(leftbuf); page = BufferGetPage(leftbuf);
pageop = BTPageGetOpaque(page); pageop = BTPageGetOpaque(page);
pageop->btpo_next = rightsib; pageop->btpo_next = rightsib;
@ -849,7 +849,7 @@ btree_xlog_unlink_page(uint8 info, XLogReaderState *record)
/* Rewrite target page as empty deleted page */ /* Rewrite target page as empty deleted page */
target = XLogInitBufferForRedo(record, 0); target = XLogInitBufferForRedo(record, 0);
page = (Page) BufferGetPage(target); page = BufferGetPage(target);
_bt_pageinit(page, BufferGetPageSize(target)); _bt_pageinit(page, BufferGetPageSize(target));
pageop = BTPageGetOpaque(page); pageop = BTPageGetOpaque(page);
@ -868,7 +868,7 @@ btree_xlog_unlink_page(uint8 info, XLogReaderState *record)
/* Fix left-link of right sibling */ /* Fix left-link of right sibling */
if (XLogReadBufferForRedo(record, 2, &rightbuf) == BLK_NEEDS_REDO) if (XLogReadBufferForRedo(record, 2, &rightbuf) == BLK_NEEDS_REDO)
{ {
page = (Page) BufferGetPage(rightbuf); page = BufferGetPage(rightbuf);
pageop = BTPageGetOpaque(page); pageop = BTPageGetOpaque(page);
pageop->btpo_prev = leftsib; pageop->btpo_prev = leftsib;
@ -907,7 +907,7 @@ btree_xlog_unlink_page(uint8 info, XLogReaderState *record)
Assert(!isleaf); Assert(!isleaf);
leafbuf = XLogInitBufferForRedo(record, 3); leafbuf = XLogInitBufferForRedo(record, 3);
page = (Page) BufferGetPage(leafbuf); page = BufferGetPage(leafbuf);
_bt_pageinit(page, BufferGetPageSize(leafbuf)); _bt_pageinit(page, BufferGetPageSize(leafbuf));
pageop = BTPageGetOpaque(page); pageop = BTPageGetOpaque(page);
@ -949,7 +949,7 @@ btree_xlog_newroot(XLogReaderState *record)
Size len; Size len;
buffer = XLogInitBufferForRedo(record, 0); buffer = XLogInitBufferForRedo(record, 0);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
_bt_pageinit(page, BufferGetPageSize(buffer)); _bt_pageinit(page, BufferGetPageSize(buffer));
pageop = BTPageGetOpaque(page); pageop = BTPageGetOpaque(page);

@ -626,7 +626,7 @@ spgvacuumpage(spgBulkDeleteState *bds, Buffer buffer)
Page page; Page page;
LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE); LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
if (PageIsNew(page)) if (PageIsNew(page))
{ {
@ -707,7 +707,7 @@ spgprocesspending(spgBulkDeleteState *bds)
buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno, buffer = ReadBufferExtended(index, MAIN_FORKNUM, blkno,
RBM_NORMAL, bds->info->strategy); RBM_NORMAL, bds->info->strategy);
LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE); LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
if (PageIsNew(page) || SpGistPageIsDeleted(page)) if (PageIsNew(page) || SpGistPageIsDeleted(page))
{ {

@ -576,7 +576,7 @@ spgRedoPickSplit(XLogReaderState *record)
{ {
/* just re-init the source page */ /* just re-init the source page */
srcBuffer = XLogInitBufferForRedo(record, 0); srcBuffer = XLogInitBufferForRedo(record, 0);
srcPage = (Page) BufferGetPage(srcBuffer); srcPage = BufferGetPage(srcBuffer);
SpGistInitBuffer(srcBuffer, SpGistInitBuffer(srcBuffer,
SPGIST_LEAF | (xldata->storesNulls ? SPGIST_NULLS : 0)); SPGIST_LEAF | (xldata->storesNulls ? SPGIST_NULLS : 0));
@ -629,7 +629,7 @@ spgRedoPickSplit(XLogReaderState *record)
{ {
/* just re-init the dest page */ /* just re-init the dest page */
destBuffer = XLogInitBufferForRedo(record, 1); destBuffer = XLogInitBufferForRedo(record, 1);
destPage = (Page) BufferGetPage(destBuffer); destPage = BufferGetPage(destBuffer);
SpGistInitBuffer(destBuffer, SpGistInitBuffer(destBuffer,
SPGIST_LEAF | (xldata->storesNulls ? SPGIST_NULLS : 0)); SPGIST_LEAF | (xldata->storesNulls ? SPGIST_NULLS : 0));
@ -642,7 +642,7 @@ spgRedoPickSplit(XLogReaderState *record)
* full-page-image case, but for safety let's hold it till later. * full-page-image case, but for safety let's hold it till later.
*/ */
if (XLogReadBufferForRedo(record, 1, &destBuffer) == BLK_NEEDS_REDO) if (XLogReadBufferForRedo(record, 1, &destBuffer) == BLK_NEEDS_REDO)
destPage = (Page) BufferGetPage(destBuffer); destPage = BufferGetPage(destBuffer);
else else
destPage = NULL; /* don't do any page updates */ destPage = NULL; /* don't do any page updates */
} }

@ -523,7 +523,7 @@ recent_buffer_fast_path:
if (mode == RBM_NORMAL) if (mode == RBM_NORMAL)
{ {
/* check that page has been initialized */ /* check that page has been initialized */
Page page = (Page) BufferGetPage(buffer); Page page = BufferGetPage(buffer);
/* /*
* We assume that PageIsNew is safe without a lock. During recovery, * We assume that PageIsNew is safe without a lock. During recovery,

@ -1920,7 +1920,7 @@ seq_redo(XLogReaderState *record)
elog(PANIC, "seq_redo: unknown op code %u", info); elog(PANIC, "seq_redo: unknown op code %u", info);
buffer = XLogInitBufferForRedo(record, 0); buffer = XLogInitBufferForRedo(record, 0);
page = (Page) BufferGetPage(buffer); page = BufferGetPage(buffer);
/* /*
* We always reinit the page. However, since this WAL record type is also * We always reinit the page. However, since this WAL record type is also

Loading…
Cancel
Save