Re: Proposal: Conflict log history table for Logical Replication
Nisha Moond <nisha.moond412@gmail.com>
From: Nisha Moond <nisha.moond412@gmail.com>
To: Dilip Kumar <dilipbalaut@gmail.com>
Cc: shveta malik <shveta.malik@gmail.com>,
Amit Kapila <amit.kapila16@gmail.com>, Peter Smith <smithpb2250@gmail.com>, vignesh C <vignesh21@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-07-03T11:52:40Z
Lists: pgsql-hackers
Attachments
- v63_nisha-edits.txt (text/plain)
On Thu, Jul 2, 2026 at 1:39 PM Dilip Kumar <dilipbalaut@gmail.com> wrote: > > I rebased the remaining patches on top of HEAD. So far, I have run > pgindent and completed the doc merge for 0001. The 0002 and 0003 are > just rebased. > Thanks, here are a few comments on the 001 patch: 1) conflict.h #include "access/xlogdefs.h" +#include "access/genam.h" #include "datatype/timestamp.h" We only need "Relation" here. Would it make sense to include "relcache.h" instead to keep the include dependency chain narrower? 2) worker_internal.h The comment above the new PARALLEL_TRANS_ERROR enum currently says: /* * The enum values must have the same order as the transaction state * transitions. */ PARALLEL_TRANS_ERROR does not strictly fit the transition order since it does not necessarily come after PARALLEL_TRANS_FINISHED. Suggestion: add something like below to avoid any confusion: "PARALLEL_TRANS_FINISHED and PARALLEL_TRANS_ERROR are mutually exclusive terminal states." 3) 035_conflicts.pl For the multiple_unique_conflicts tests, we are currently only verifying that one key exists out of the three, and we are also not checking whether all three conflicting rows are present in CLT. How about using a query like below to verify all three keys instead to provide stronger validation? "SELECT (unnest(local_conflicts)->'tuple'->>'a')::int FROM $clt WHERE conflict_type = 'multiple_unique_conflicts' ORDER BY 1;" Attached a 001 top-up patch with the above suggestions applied. Please consider them if you agree. -- Thanks, Nisha
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