From e298b558dae78e99affdd836406909763d1f3764 Mon Sep 17 00:00:00 2001 From: Peter Geoghegan Date: Sun, 7 Jun 2020 19:15:48 -0700 Subject: [PATCH] Fix HeapCheckForSerializableConflictOut() bug --- src/backend/access/heap/heapam.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 94eb37d48d..6d78756afa 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -9017,15 +9017,12 @@ HeapCheckForSerializableConflictOut(bool visible, Relation relation, xid = HeapTupleHeaderGetXmin(tuple->t_data); break; case HEAPTUPLE_RECENTLY_DEAD: - if (!visible) - return; - xid = HeapTupleHeaderGetUpdateXid(tuple->t_data); - break; case HEAPTUPLE_DELETE_IN_PROGRESS: - xid = HeapTupleHeaderGetUpdateXid(tuple->t_data); - break; case HEAPTUPLE_INSERT_IN_PROGRESS: - xid = HeapTupleHeaderGetXmin(tuple->t_data); + if (!visible) + xid = HeapTupleHeaderGetXmin(tuple->t_data); + else + xid = HeapTupleHeaderGetUpdateXid(tuple->t_data); break; case HEAPTUPLE_DEAD: return; -- 2.25.1