mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-06 15:24:56 +08:00
Remove pointless HeapTupleHeaderIndicatesMovedPartitions calls
Pavan Deolasee recently noted that a few of the
HeapTupleHeaderIndicatesMovedPartitions calls added by commit
5db6df0c01
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.
Discussion: https://postgr.es/m/20200929164411.GA15497@alvherre.pgsql
This commit is contained in:
parent
2203ede9ae
commit
85adb5e91e
@ -2618,8 +2618,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;
|
||||||
@ -3248,8 +3247,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;
|
||||||
@ -4485,8 +4483,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;
|
||||||
@ -5059,8 +5056,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,
|
|||||||
{
|
{
|
||||||
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,
|
|||||||
|
|
||||||
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,
|
|||||||
|
|
||||||
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 */
|
||||||
|
Loading…
Reference in New Issue
Block a user