|
|
|
@ -607,7 +607,8 @@ 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)) |
|
|
|
|
if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid) || |
|
|
|
|
HeapTupleHeaderIndicatesMovedPartitions(tuple)) |
|
|
|
|
return TM_Updated; /* updated by other */ |
|
|
|
|
else |
|
|
|
|
return TM_Deleted; /* deleted by other */ |
|
|
|
@ -652,7 +653,8 @@ HeapTupleSatisfiesUpdate(HeapTuple htup, CommandId curcid, |
|
|
|
|
|
|
|
|
|
if (TransactionIdDidCommit(xmax)) |
|
|
|
|
{ |
|
|
|
|
if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid)) |
|
|
|
|
if (!ItemPointerEquals(&htup->t_self, &tuple->t_ctid) || |
|
|
|
|
HeapTupleHeaderIndicatesMovedPartitions(tuple)) |
|
|
|
|
return TM_Updated; |
|
|
|
|
else |
|
|
|
|
return TM_Deleted; |
|
|
|
@ -712,7 +714,8 @@ HeapTupleSatisfiesUpdate(HeapTuple htup, CommandId curcid, |
|
|
|
|
|
|
|
|
|
SetHintBits(tuple, buffer, HEAP_XMAX_COMMITTED, |
|
|
|
|
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 */ |
|
|
|
|
else |
|
|
|
|
return TM_Deleted; /* deleted by other */ |
|
|
|
|