mirror of
https://github.com/postgres/postgres.git
synced 2025-08-31 17:02:12 +03: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:
@@ -607,8 +607,7 @@ HeapTupleSatisfiesUpdate(HeapTuple htup, CommandId curcid,
|
||||
{
|
||||
if (HEAP_XMAX_IS_LOCKED_ONLY(tuple->t_infomask))
|
||||
return TM_Ok;
|
||||
if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid) ||
|
||||
HeapTupleHeaderIndicatesMovedPartitions(tuple))
|
||||
if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid))
|
||||
return TM_Updated; /* updated by other */
|
||||
else
|
||||
return TM_Deleted; /* deleted by other */
|
||||
@@ -653,8 +652,7 @@ HeapTupleSatisfiesUpdate(HeapTuple htup, CommandId curcid,
|
||||
|
||||
if (TransactionIdDidCommit(xmax))
|
||||
{
|
||||
if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid) ||
|
||||
HeapTupleHeaderIndicatesMovedPartitions(tuple))
|
||||
if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid))
|
||||
return TM_Updated;
|
||||
else
|
||||
return TM_Deleted;
|
||||
@@ -714,8 +712,7 @@ HeapTupleSatisfiesUpdate(HeapTuple htup, CommandId curcid,
|
||||
|
||||
SetHintBits(tuple, buffer, HEAP_XMAX_COMMITTED,
|
||||
HeapTupleHeaderGetRawXmax(tuple));
|
||||
if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid) ||
|
||||
HeapTupleHeaderIndicatesMovedPartitions(tuple))
|
||||
if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid))
|
||||
return TM_Updated; /* updated by other */
|
||||
else
|
||||
return TM_Deleted; /* deleted by other */
|
||||
|
Reference in New Issue
Block a user