Re: Proposal: Conflict log history table for Logical Replication

From: shveta malik <shveta(dot)malik(at)gmail(dot)com>
To: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Cc: Dilip Kumar <DilipBalaut(at)gmail(dot)com>, Zhijie Hou <houzhijie22(at)gmail(dot)com>, Nisha Moond <nisha(dot)moond412(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, vignesh C <vignesh21(at)gmail(dot)com>, saurabh singh <saurabh(dot)singh214(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Peter Smith <smithpb2250(at)gmail(dot)com>, Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, shveta malik <shvetamalik(at)gmail(dot)com>
Subject: Re: Proposal: Conflict log history table for Logical Replication
Date: 2026-10-26 04:58:58
Message-ID: CAJpy0uAiC2u_q0G4+USdYTB+mPn5MOEuzF9TyVBR4C=7Sv1j3w@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Oct 26, 2026 at 9:52 AM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
>
> On Mon, Oct 26, 2026 at 9:08 AM shveta malik <shveta(dot)malik(at)gmail(dot)com> wrote:
> >
> > On Sat, Oct 24, 2026 at 11:42 AM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> > >
> > > The current use of the "datestyle" and other GUCs in libpqwalreceiver
> > > or in other places is to keep the format portable across nodes but
> > > here the CLT output will be usually human-readable. So, the same
> > > analogy doesn't follow here. I am not convinced that this required
> > > mid-way changing the GUCs temporarily. I feel we can document this
> > > column and if we still get a request from field for portability of
> > > this field(s) then we can consider using GUCs to make the format
> > > consistent.
> > >
> >
> > But it causes ambiguous results as shown in [1]. I am not sure how
> > documentation will help here. As I see it, the stored key must
> > convert back to the original value, not to some other value,
> > especially since the patch’s own docs recommend casting it back to the
> > column type before comparing. And I don’t think libpqwalreceiver does
> > this for portability: its comment says it forces these GUCs so values
> > are output “in a form that is unambiguous to the subscriber.” IMO,
> > that’s the same goal here: avoiding a wrong stored value, not
> > portability.
> >
>
> That is a cross-node compatibility case and similarly pg_dump's output
> could be restored on another node. I feel if a user changes the
> datestyle or similar settings in-between different conflict-insertions
> the results can change accordingly. We shouldn't take such guarantees.
> It should be documented somewhere along with the following text [1],
> we can probably give a small example as well.
>
> [1]
> + <para>
> + The apply worker's <xref linkend="guc-bytea-output"/> and
> + <xref linkend="guc-quote-all-identifiers"/> settings change how a value
> + is written without changing the value itself. If these settings differ
> + between conflicts, the same key can be recorded in different but
> + equivalent forms, and comparing the recorded text may miss some of them.

Okay. Let's do this, we can decide further if we have any real
customer's feedback.

thanks
Shveta

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Smith 2026-10-26 05:42:38 Re: DOCS - CREATE PUBLICATION wording re 'ONLY' for partitioned tables.
Previous Message shihao zhong 2026-10-26 04:57:45 Reject unassigned bytes in single-byte encodings