Re: Question about behavior of deletes with REPLICA IDENTITY NOTHING

From: Peter Smith <smithpb2250(at)gmail(dot)com>
To: Robert Treat <rob(at)xzilla(dot)net>
Cc: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, James Coleman <jtc331(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Question about behavior of deletes with REPLICA IDENTITY NOTHING
Date: 2025-01-14 01:07:15
Message-ID: CAHut+PsGdTH-JRVY6Cv7JxLxMGZZuigP4=fT+J81+wgKPNLsMA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Jan 14, 2025 at 8:22 AM Robert Treat <rob(at)xzilla(dot)net> wrote:
>
> On Mon, Jan 13, 2025 at 3:55 AM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> > On Mon, Jan 13, 2025 at 10:22 AM Robert Treat <rob(at)xzilla(dot)net> wrote:
> > > On Sun, Jan 12, 2025 at 11:00 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> > > > On Sat, Jan 11, 2025 at 7:28 PM Robert Treat <rob(at)xzilla(dot)net> wrote:
> > > > + If a table with replica identity set to <literal>NOTHING</literal>
> > > > + (or set <command>DEFAULT</command> but with no primary key, or set
> > > > + <command>USING INDEX</command> but the index has been dropped) is
> > > > + added to a publication that replicates <command>UPDATE</command>
> > > > + or <command>DELETE</command> operations,
> > > > + subsequent <command>UPDATE</command> or <command>DELETE</command>
> > > > + operations will cause an error on the publisher.
> > > >
> > > > In the above change, we missed the existing "a table without a replica
> > > > identity" part. A slightly different way to write the above change
> > > > could be: "Tables lacking a replica identity or with an insufficiently
> > > > defined replica identity (e.g., set to NOTHING, set to DEFAULT but
> > > > with no primary key, or set USING INDEX but the index has been
> > > > dropped) cannot be updated or deleted when added to a publication that
> > > > replicates these operations. Attempting to do so will result in an
> > > > error on the publisher."
> > > >
> > >
> >
> <snip>
> > > Aside from that, your above language is a little more compact with the
> > > trade-off of being less explicit in talking about publication
> > > properties; I didn't change that part because it didn't seem like an
> > > issue, but we could update that second part if you feel strongly about
> > > it. LMK.
> > >
> >
> > One of the reasons I tried to rephrase the sentence was it appears to
> > be long. I agree that the way you proposed is more explicit but the
> > way I phrased also conveys the information in a bit succinct form. I
> > think you can once propose with the wording on those lines then let us
> > what Peter or others think about it.
> >
>
> Splitting the difference would look like this?
>
> "Tables with replica identity set <literal>NOTHING</literal>,
> set <literal>DEFAULT</literal> but with no primary key, or set
> <literal>USING INDEX</literal> but the index has been
> dropped, cannot be updated or deleted when added to a publication that
> replicates these operations. Attempting to do so will result in an
> error on the publisher."
>
>

I thought Amit's proposed text was mostly OK; it only needed the
"lacking a replica identity" part to be removed. (I've also changed
the e.g. to i.e.)

Like this:

"Tables with an insufficiently defined replica identity (i.e., set to
NOTHING, set to DEFAULT but with no primary key, or set USING INDEX
but the index has been dropped) cannot be updated or ...".

======
Kind Regards,
Peter Smith.
Fujitsu Australia

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Smith 2025-01-14 01:35:45 Re: Skip collecting decoded changes of already-aborted transactions
Previous Message Jacob Champion 2025-01-14 01:00:00 Re: [PoC] Federated Authn/z with OAUTHBEARER