Re: Question about behavior of deletes with REPLICA IDENTITY NOTHING - Mailing list pgsql-hackers

From Peter Smith
Subject Re: Question about behavior of deletes with REPLICA IDENTITY NOTHING
Date
Msg-id CAHut+PsGdTH-JRVY6Cv7JxLxMGZZuigP4=fT+J81+wgKPNLsMA@mail.gmail.com
Whole thread Raw
In response to Re: Question about behavior of deletes with REPLICA IDENTITY NOTHING  (Robert Treat <rob@xzilla.net>)
List pgsql-hackers
On Tue, Jan 14, 2025 at 8:22 AM Robert Treat <rob@xzilla.net> wrote:
>
> On Mon, Jan 13, 2025 at 3:55 AM Amit Kapila <amit.kapila16@gmail.com> wrote:
> > On Mon, Jan 13, 2025 at 10:22 AM Robert Treat <rob@xzilla.net> wrote:
> > > On Sun, Jan 12, 2025 at 11:00 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
> > > > On Sat, Jan 11, 2025 at 7:28 PM Robert Treat <rob@xzilla.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



pgsql-hackers by date:

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