aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/heap/heapam.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/access/heap/heapam.c')
-rw-r--r--src/backend/access/heap/heapam.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 32e7d3c1464..4be0dee4de0 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -5907,7 +5907,6 @@ heap_abort_speculative(Relation relation, ItemPointer tid)
Page page;
BlockNumber block;
Buffer buffer;
- TransactionId prune_xid;
Assert(ItemPointerIsValid(tid));
@@ -5960,11 +5959,16 @@ heap_abort_speculative(Relation relation, ItemPointer tid)
* TransactionXmin, so there's no race here).
*/
Assert(TransactionIdIsValid(TransactionXmin));
- if (TransactionIdPrecedes(TransactionXmin, relation->rd_rel->relfrozenxid))
- prune_xid = relation->rd_rel->relfrozenxid;
- else
- prune_xid = TransactionXmin;
- PageSetPrunable(page, prune_xid);
+ {
+ TransactionId relfrozenxid = relation->rd_rel->relfrozenxid;
+ TransactionId prune_xid;
+
+ if (TransactionIdPrecedes(TransactionXmin, relfrozenxid))
+ prune_xid = relfrozenxid;
+ else
+ prune_xid = TransactionXmin;
+ PageSetPrunable(page, prune_xid);
+ }
/* store transaction information of xact deleting the tuple */
tp.t_data->t_infomask &= ~(HEAP_XMAX_BITS | HEAP_MOVED);