X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=src%2Fbackend%2Faccess%2Fheap%2Fpruneheap.c;h=19201b0bca5c9be7f2a36bb838414345aabe8385;hb=8b65cf4c5edabdcae45ceaef7b9ac236879aae50;hp=06b548892309cfa51e26e64d03489803ea7896d3;hpb=0a7832005792fa6dad171f9cadb8d587fe0dd800;p=postgresql diff --git a/src/backend/access/heap/pruneheap.c b/src/backend/access/heap/pruneheap.c index 06b5488923..19201b0bca 100644 --- a/src/backend/access/heap/pruneheap.c +++ b/src/backend/access/heap/pruneheap.c @@ -3,7 +3,7 @@ * pruneheap.c * heap page pruning and HOT-chain management code * - * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group + * Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * @@ -18,6 +18,7 @@ #include "access/heapam_xlog.h" #include "access/transam.h" #include "access/htup_details.h" +#include "access/xlog.h" #include "catalog/catalog.h" #include "miscadmin.h" #include "pgstat.h" @@ -73,7 +74,7 @@ static void heap_prune_record_unused(PruneState *prstate, OffsetNumber offnum); void heap_page_prune_opt(Relation relation, Buffer buffer) { - Page page = BufferGetPage(buffer); + Page page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); Size minfree; TransactionId OldestXmin; @@ -173,7 +174,7 @@ heap_page_prune(Relation relation, Buffer buffer, TransactionId OldestXmin, bool report_stats, TransactionId *latestRemovedXid) { int ndeleted = 0; - Page page = BufferGetPage(buffer); + Page page = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); OffsetNumber offnum, maxoff; PruneState prstate; @@ -260,7 +261,8 @@ heap_page_prune(Relation relation, Buffer buffer, TransactionId OldestXmin, prstate.nowunused, prstate.nunused, prstate.latestRemovedXid); - PageSetLSN(BufferGetPage(buffer), recptr); + PageSetLSN(BufferGetPage(buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST), recptr); } } else @@ -346,7 +348,7 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, PruneState *prstate) { int ndeleted = 0; - Page dp = (Page) BufferGetPage(buffer); + Page dp = BufferGetPage(buffer, NULL, NULL, BGP_NO_SNAPSHOT_TEST); TransactionId priorXmax = InvalidTransactionId; ItemId rootlp; HeapTupleHeader htup; @@ -371,7 +373,6 @@ heap_prune_chain(Relation relation, Buffer buffer, OffsetNumber rootoffnum, tup.t_data = htup; tup.t_len = ItemIdGetLength(rootlp); - tup.t_tableOid = RelationGetRelid(relation); ItemPointerSet(&(tup.t_self), BufferGetBlockNumber(buffer), rootoffnum); if (HeapTupleHeaderIsHeapOnly(htup)) @@ -673,7 +674,8 @@ heap_page_prune_execute(Buffer buffer, OffsetNumber *nowdead, int ndead, OffsetNumber *nowunused, int nunused) { - Page page = (Page) BufferGetPage(buffer); + Page page = BufferGetPage(buffer, NULL, NULL, + BGP_NO_SNAPSHOT_TEST); OffsetNumber *offnum; int i;