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: Amit Kapila <amit.kapila16@gmail.com>, vignesh C <vignesh21@gmail.com>, Peter Smith <smithpb2250@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>, shveta malik <shvetamalik@gmail.com>
Date: 2026-06-01T12:23:08Z
Lists: pgsql-hackers

Attachments

On Sat, May 30, 2026 at 1:42 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
>
> In latest patch set I have fixed Nisha's comments by creating a toast
> table, a separate patch
> (v43-0005-Create-conflict-log-table-after-inserting-subscr.patch)
> attached for creating conflict log table after inserting subscription
> row.
>

Thanks for the patches. Please find a couple of comments on v43:

1) A non-superuser cannot read the new columns 'subconflictlogrelid'
and 'subconflictlogdest' from pg_subscription.
A comment in system_views.sql say:
"-- All columns of pg_subscription except subconninfo are publicly readable."

I think we should grant public access to these new columns as well.

2) patch-002: conflict.c

-const ConflictLogColumnDef ConflictLogSchema[] = {
+StaticAssertDecl(lengthof(ConflictLogDestNames) == 3,
+ "ConflictLogDestNames length mismatch");
+

Should we use "CONFLICT_LOG_DEST_ALL + 1" instead of the hard-coded value "3"?

The attached diff fixes the above items, along with a few indentation
and whitespace. Please consider it if you agree with the changes.

--
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 →
  1. Allow logical replication conflicts to be logged to a table.

  2. Avoid orphaned objects dependencies