Re: Proposal: Conflict log history table for Logical Replication

From: Zhijie Hou <houzhijie22(at)gmail(dot)com>
To: shveta malik <shveta(dot)malik(at)gmail(dot)com>
Cc: Peter Smith <smithpb2250(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, shihao zhong <zhong950419(at)gmail(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Nisha Moond <nisha(dot)moond412(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>, 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-11-05 09:42:06
Message-ID: fee7fba7-bbbf-48b6-b99e-58c9b2f38b42@gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On Thu, Nov 5, 2026 at 04:54 PM shveta malik wrote:
>
> The xid fix looks okay to me. One minor point: in
> CheckAndReportConflict(), the epoch-based conversion

Thanks for reviewing.

>
> conflicttuple->xmin =
> FullTransactionIdFromAllowableAt(ReadNextFullTransactionId(), xmin);
>
> isn’t strictly needed. These are ERROR-level conflicts, which are
> never written to the conflict log table, so conflicttuple->xmin is
> only consumed by the server-log in ReportApplyConflict() after
> truncating back to the 32-bit xid (epoch thrown). But I think, it is
> good to still retain it as-is for consistency with the other
> conflict-detection sites.

I also think it's fine to keep it for now for consistency.

>
> ~~
>
> I am not sure if you have started taking comments on 002 yet. Here are
> a few comments; feel free to defer them to later versions if we want
> to conclude on 001 first.

Thanks. For now, I'll make a note of these and update 0002 later once
0001 is ready.

Here is the new patch version, which addresses Peter's comments on the
GUC lc_monetary. Also adjusted the doc a bit to make it more generic, so
we don't have to keep adding new entries there.

Per the internal review, I've also improved a few code comments and
removed one header inclusion for the new full xid logic.

0003 has been improved a bit per the internal review, thanks to Vignesh
for doing that.

--
Best Regards,
Zhijie Hou

Attachment Content-Type Size
v92-0001-Record-logical-replication-conflicts-in-the-conf.patch text/plain 138.5 KB
v92-0002-Preserve-conflict-log-destination-and-subscripti.patch text/plain 25.2 KB
v92-0003-Add-conflict-log-table-information-to-describe-s.patch text/plain 81.8 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message vignesh C 2026-11-05 10:07:47 Re: [PATCH v1] Fix initial sync of zero-column published tables
Previous Message Jakub Wartak 2026-11-05 09:29:14 Re: [Bug Report + Patch] File descriptor leak when io_method=io_uring