From 29cc11a5640c7423e91879d841b6dca99cd59d55 Mon Sep 17 00:00:00 2001 From: Hayato Kuroda Date: Tue, 29 Sep 2026 12:15:06 +0900 Subject: [PATCH v1] Don't treat a deferrable PK in RelationFindDeletedTupleInfoSeq --- src/backend/executor/execReplication.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c index fd9efd94737..625d77e41d4 100644 --- a/src/backend/executor/execReplication.c +++ b/src/backend/executor/execReplication.c @@ -591,8 +591,11 @@ RelationFindDeletedTupleInfoSeq(Relation rel, TupleTableSlot *searchslot, indexbitmap = RelationGetIndexAttrBitmap(rel, INDEX_ATTR_BITMAP_IDENTITY_KEY); - /* fallback to PK if no replica identity */ - if (!indexbitmap) + /* + * fallback to PK if no replica identity, but only if the PK is not + * deferrable. + */ + if (!indexbitmap && OidIsValid(RelationGetPrimaryKeyIndex(rel, false))) indexbitmap = RelationGetIndexAttrBitmap(rel, INDEX_ATTR_BITMAP_PRIMARY_KEY); -- 2.52.0