{
PREDICATELOCKTARGETTAG tag;
ItemPointer tid;
- TransactionId targetxmin;
if (!SerializationNeededForRead(relation, snapshot))
return;
*/
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;
}
/*