aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/heap/heapam.c
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2020-10-15 15:16:11 -0300
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2020-10-15 15:16:11 -0300
commit93f84d59f80d11a3d8ade9ae71560162d6f3ecb2 (patch)
tree2e55f5e45e6122bb4c672165f1de172ac16a927e /src/backend/access/heap/heapam.c
parent85adb5e91ec2f45a388bef7a92a3d988c7e45501 (diff)
downloadpostgresql-93f84d59f80d11a3d8ade9ae71560162d6f3ecb2.tar.gz
postgresql-93f84d59f80d11a3d8ade9ae71560162d6f3ecb2.zip
Revert "Remove pointless HeapTupleHeaderIndicatesMovedPartitions calls"
This reverts commit 85adb5e91ec2. It was not intended for commit just yet.
Diffstat (limited to 'src/backend/access/heap/heapam.c')
-rw-r--r--src/backend/access/heap/heapam.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c
index 868ff134539..1585861a021 100644
--- a/src/backend/access/heap/heapam.c
+++ b/src/backend/access/heap/heapam.c
@@ -2618,7 +2618,8 @@ l1:
HEAP_XMAX_IS_LOCKED_ONLY(tp.t_data->t_infomask) ||
HeapTupleHeaderIsOnlyLocked(tp.t_data))
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;
else
result = TM_Deleted;
@@ -3247,7 +3248,8 @@ l2:
if (can_continue)
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;
else
result = TM_Deleted;
@@ -4483,7 +4485,8 @@ l3:
HEAP_XMAX_IS_LOCKED_ONLY(tuple->t_data->t_infomask) ||
HeapTupleHeaderIsOnlyLocked(tuple->t_data))
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;
else
result = TM_Deleted;
@@ -5056,7 +5059,8 @@ test_lockmode_for_conflict(MultiXactStatus status, TransactionId xid,
LOCKMODE_from_mxstatus(wantedstatus)))
{
/* 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;
else
return TM_Deleted;