Commit 0f5505a8 authored by Alvaro Herrera's avatar Alvaro Herrera

Remove pointless HeapTupleHeaderIndicatesMovedPartitions calls

Pavan Deolasee recently noted that a few of the
HeapTupleHeaderIndicatesMovedPartitions calls added by commit
5db6df0c are useless, since they are done after comparing t_self
with t_ctid.  But because t_self can never be set to the magical values
that indicate that the tuple moved partition, this can never succeed: if
the first test fails (so we know t_self equals t_ctid), necessarily the
second test will also fail.

So these checks can be removed and no harm is done.  There's no bug
here, just a code legibility issue.
Reported-by: default avatarPavan Deolasee <pavan.deolasee@gmail.com>
Discussion: https://postgr.es/m/20200929164411.GA15497@alvherre.pgsql
parent 6a03369a
...@@ -2769,8 +2769,7 @@ l1: ...@@ -2769,8 +2769,7 @@ l1:
HEAP_XMAX_IS_LOCKED_ONLY(tp.t_data->t_infomask) || HEAP_XMAX_IS_LOCKED_ONLY(tp.t_data->t_infomask) ||
HeapTupleHeaderIsOnlyLocked(tp.t_data)) HeapTupleHeaderIsOnlyLocked(tp.t_data))
result = TM_Ok; result = TM_Ok;
else if (!ItemPointerEquals(&tp.t_self, &tp.t_data->t_ctid) || else if (!ItemPointerEquals(&tp.t_self, &tp.t_data->t_ctid))
HeapTupleHeaderIndicatesMovedPartitions(tp.t_data))
result = TM_Updated; result = TM_Updated;
else else
result = TM_Deleted; result = TM_Deleted;
...@@ -3399,8 +3398,7 @@ l2: ...@@ -3399,8 +3398,7 @@ l2:
if (can_continue) if (can_continue)
result = TM_Ok; result = TM_Ok;
else if (!ItemPointerEquals(&oldtup.t_self, &oldtup.t_data->t_ctid) || else if (!ItemPointerEquals(&oldtup.t_self, &oldtup.t_data->t_ctid))
HeapTupleHeaderIndicatesMovedPartitions(oldtup.t_data))
result = TM_Updated; result = TM_Updated;
else else
result = TM_Deleted; result = TM_Deleted;
...@@ -4636,8 +4634,7 @@ l3: ...@@ -4636,8 +4634,7 @@ l3:
HEAP_XMAX_IS_LOCKED_ONLY(tuple->t_data->t_infomask) || HEAP_XMAX_IS_LOCKED_ONLY(tuple->t_data->t_infomask) ||
HeapTupleHeaderIsOnlyLocked(tuple->t_data)) HeapTupleHeaderIsOnlyLocked(tuple->t_data))
result = TM_Ok; result = TM_Ok;
else if (!ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid) || else if (!ItemPointerEquals(&tuple->t_self, &tuple->t_data->t_ctid))
HeapTupleHeaderIndicatesMovedPartitions(tuple->t_data))
result = TM_Updated; result = TM_Updated;
else else
result = TM_Deleted; result = TM_Deleted;
...@@ -5210,8 +5207,7 @@ test_lockmode_for_conflict(MultiXactStatus status, TransactionId xid, ...@@ -5210,8 +5207,7 @@ test_lockmode_for_conflict(MultiXactStatus status, TransactionId xid,
LOCKMODE_from_mxstatus(wantedstatus))) LOCKMODE_from_mxstatus(wantedstatus)))
{ {
/* bummer */ /* bummer */
if (!ItemPointerEquals(&tup->t_self, &tup->t_data->t_ctid) || if (!ItemPointerEquals(&tup->t_self, &tup->t_data->t_ctid))
HeapTupleHeaderIndicatesMovedPartitions(tup->t_data))
return TM_Updated; return TM_Updated;
else else
return TM_Deleted; return TM_Deleted;
......
...@@ -607,8 +607,7 @@ HeapTupleSatisfiesUpdate(HeapTuple htup, CommandId curcid, ...@@ -607,8 +607,7 @@ HeapTupleSatisfiesUpdate(HeapTuple htup, CommandId curcid,
{ {
if (HEAP_XMAX_IS_LOCKED_ONLY(tuple->t_infomask)) if (HEAP_XMAX_IS_LOCKED_ONLY(tuple->t_infomask))
return TM_Ok; return TM_Ok;
if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid) || if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid))
HeapTupleHeaderIndicatesMovedPartitions(tuple))
return TM_Updated; /* updated by other */ return TM_Updated; /* updated by other */
else else
return TM_Deleted; /* deleted by other */ return TM_Deleted; /* deleted by other */
...@@ -653,8 +652,7 @@ HeapTupleSatisfiesUpdate(HeapTuple htup, CommandId curcid, ...@@ -653,8 +652,7 @@ HeapTupleSatisfiesUpdate(HeapTuple htup, CommandId curcid,
if (TransactionIdDidCommit(xmax)) if (TransactionIdDidCommit(xmax))
{ {
if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid) || if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid))
HeapTupleHeaderIndicatesMovedPartitions(tuple))
return TM_Updated; return TM_Updated;
else else
return TM_Deleted; return TM_Deleted;
...@@ -714,8 +712,7 @@ HeapTupleSatisfiesUpdate(HeapTuple htup, CommandId curcid, ...@@ -714,8 +712,7 @@ HeapTupleSatisfiesUpdate(HeapTuple htup, CommandId curcid,
SetHintBits(tuple, buffer, HEAP_XMAX_COMMITTED, SetHintBits(tuple, buffer, HEAP_XMAX_COMMITTED,
HeapTupleHeaderGetRawXmax(tuple)); HeapTupleHeaderGetRawXmax(tuple));
if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid) || if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid))
HeapTupleHeaderIndicatesMovedPartitions(tuple))
return TM_Updated; /* updated by other */ return TM_Updated; /* updated by other */
else else
return TM_Deleted; /* deleted by other */ return TM_Deleted; /* deleted by other */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment