Re: Proposal: Conflict log history table for Logical Replication
Dilip Kumar <dilipbalaut@gmail.com>
From: Dilip Kumar <dilipbalaut@gmail.com>
To: Nisha Moond <nisha.moond412@gmail.com>
Cc: Peter Smith <smithpb2250@gmail.com>, vignesh C <vignesh21@gmail.com>, Amit Kapila <amit.kapila16@gmail.com>, shveta malik <shveta.malik@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-04-21T09:51:09Z
Lists: pgsql-hackers
Attachments
- v27-0001-Add-configurable-conflict-log-table-for-Logical.patch (application/octet-stream) patch v27-0001
- v27-0002-Implement-the-conflict-insertion-infrastructure-.patch (application/octet-stream) patch v27-0002
- v27-0003-Documentation-patch.patch (application/octet-stream) patch v27-0003
On Mon, Apr 20, 2026 at 7:31 PM Nisha Moond <nisha.moond412@gmail.com> wrote: > > On Mon, Apr 20, 2026 at 5:25 PM Nisha Moond <nisha.moond412@gmail.com> wrote: > > > > On Thu, Apr 16, 2026 at 9:24 PM Dilip Kumar <dilipbalaut@gmail.com> wrote: > > > > > > On Fri, Apr 10, 2026 at 4:54 PM Nisha Moond <nisha.moond412@gmail.com> wrote: > > > > > > > > Hi Dilip, > > > > I’m planning to review/test the feature patches, but they don’t apply > > > > cleanly on the latest HEAD. Could you please rebase them? > > > > > > > Thanks Nisha. Here is the rebased version > > > > Thank you Dilip. I reviewed the patches and did basic testing. > > > > Here are a few comments for the first two patches - > > Please find further comments for the document patch-0003: > > 1) File: /doc/src/sgml/logical-replication.sgml > + <xref linkend="logical-replication-conflict-log-schema"/>. > + </para> > + > + <table id="logical-replication-conflict-log-schema"> > + <title>Conflict Log Table Schema</title> > > The "replica_identity" column is missing from the schema table in docs. > ~~~ > > Few minor comments: > 2) File: /doc/src/sgml/logical-replication.sgml: couple of typos in > below change- > - The log format for logical replication conflicts is as follows: > + The <link linkend="sql-createsubscription-params-with-conflict-log-destination"><literal>conflict_log_destination</literal></link> > + parameter can automatically creates a dedicated conflict log > table. This table is created in the dedicated > + <literal>pg_conflict</literal> namespace. The name of the > conflict log table > + is <literal>pg_conflict_<subid></literal>. The predefined > schema of this table is > + detailed in > + <xref linkend="logical-replication-conflict-log-schema"/>. > + </para> > > 2a) "can automatically creates" / "automatically creates" > 2b) there are double spaces after full stop. > "conflict log table. This table " > " namespace. The name of the conflict" > ~~~ > > 3) Commit message typo - > Doccumentation patch / Documentation patch > ~~~ > > 4) File: /doc/src/sgml/ref/alter_subscription.sgml > + When the <link > linkend="sql-createsubscription-params-with-conflict-log-destination"><literal>conflict_log_destination</literal></link> > + parameter is set to <literal>table</literal> or > <literal>all</literal>, the system > + automatically creates the internal conflict log table if it > does not already > + exist. > > The phrase “if it does not already exist” seems misleading here. The > table shouldn’t pre-exist, as it’s always dropped and recreated when > conflict_log_destination changes. Let me know if I’m missing any case > where it could pre-exist. > ~~~ Thanks Nisha for the review. All your comments make sense so I have fixed them in the latest patch. -- Regards, Dilip Kumar Google
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Allow logical replication conflicts to be logged to a table.
- a5918fddf10d master landed
-
Avoid orphaned objects dependencies
- 2fbb21170e90 19 (unreleased) cited