RE: Fix apply worker crash when subscriber table has only a deferrable primary key

From: "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>
To: 'Nisha Moond' <nisha(dot)moond412(at)gmail(dot)com>
Cc: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: RE: Fix apply worker crash when subscriber table has only a deferrable primary key
Date: 2026-10-01 02:40:48
Message-ID: OS7PR01MB18317206B6E72455D8BFED585F58A2@OS7PR01MB18317.jpnprd01.prod.outlook.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Dear Nisha,

> My understanding is also the same. Thanks for the patch; I’ve verified the fix.
>
> Here is the updated version, merged with v3-0001.
>
> v4-0001: Updated stale comments in RelationFindDeletedTupleInfoSeq(),
> corrected the new comments in FindDeletedTupleInLocalRel(), and added
> an assertion that the whole row is compared only when the publisher
> uses REPLICA IDENTITY FULL.

Thanks. One comments for 0001:

```
/* Without such an index, every column is compared. */
Assert(relmapentry->idxisreplident ||
relmapentry->remoterel.replident == REPLICA_IDENTITY_FULL);
```

I feel the first condition is something like transitive. Here we want to confirm
whether 1) we can pick indexed columns or 2) all columns are replicated. So it's
better to directly check the existence of the index:

```
Assert(OidIsValid(idxoid) ||
relmapentry->remoterel.replident == REPLICA_IDENTITY_FULL);
```

Best regards,
Hayato Kuroda
FUJITSU LIMITED

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message shihao zhong 2026-10-01 02:56:03 Commitfest PG20-2 is now closed
Previous Message ZizhuanLiu X-MAN 2026-10-01 02:21:16 Re: Optimize MCV stats for sortable types and utilize sorted-order properties