aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/utils/time/tqual.c20
1 files changed, 2 insertions, 18 deletions
diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c
index 6d8f86acc96..94e40c69ae8 100644
--- a/src/backend/utils/time/tqual.c
+++ b/src/backend/utils/time/tqual.c
@@ -1200,27 +1200,11 @@ HeapTupleSatisfiesVacuum(HeapTupleHeader tuple, TransactionId OldestXmin,
}
/*
- * Deleter committed, but check special cases.
+ * Deleter committed, but perhaps it was recent enough that some open
+ * transactions could still see the tuple.
*/
-
- if (TransactionIdEquals(HeapTupleHeaderGetXmin(tuple),
- HeapTupleHeaderGetXmax(tuple)))
- {
- /*
- * Inserter also deleted it, so it was never visible to anyone else.
- * However, we can only remove it early if it's not an updated tuple;
- * else its parent tuple is linking to it via t_ctid, and this tuple
- * mustn't go away before the parent does.
- */
- if (!(tuple->t_infomask & HEAP_UPDATED))
- return HEAPTUPLE_DEAD;
- }
-
if (!TransactionIdPrecedes(HeapTupleHeaderGetXmax(tuple), OldestXmin))
- {
- /* deleting xact is too recent, tuple could still be visible */
return HEAPTUPLE_RECENTLY_DEAD;
- }
/* Otherwise, it's dead and removable */
return HEAPTUPLE_DEAD;