diff --git a/src/backend/storage/lmgr/predicate.c b/src/backend/storage/lmgr/predicate.c index 78fb90fb1b..86b46d68b9 100644 --- a/src/backend/storage/lmgr/predicate.c +++ b/src/backend/storage/lmgr/predicate.c @@ -2549,7 +2549,6 @@ PredicateLockTuple(Relation relation, HeapTuple tuple, Snapshot snapshot) { PREDICATELOCKTARGETTAG tag; ItemPointer tid; - TransactionId targetxmin; if (!SerializationNeededForRead(relation, snapshot)) return; @@ -2559,24 +2558,9 @@ PredicateLockTuple(Relation relation, HeapTuple tuple, Snapshot snapshot) */ if (relation->rd_index == NULL) { - TransactionId myxid; - - targetxmin = HeapTupleHeaderGetXmin(tuple->t_data); - - myxid = GetTopTransactionIdIfAny(); - if (TransactionIdIsValid(myxid)) - { - if (TransactionIdFollowsOrEquals(targetxmin, TransactionXmin)) - { - TransactionId xid = SubTransGetTopmostTransaction(targetxmin); - - if (TransactionIdEquals(xid, myxid)) - { - /* We wrote it; we already have a write lock. */ - return; - } - } - } + /* If we wrote it; we already have a write lock. */ + if (TransactionIdIsCurrentTransactionId(HeapTupleHeaderGetXmin(tuple->t_data))) + return; } /*