Re: Proposal: Conflict log history table for Logical Replication - Mailing list pgsql-hackers

From shveta malik
Subject Re: Proposal: Conflict log history table for Logical Replication
Date
Msg-id CAJpy0uBDLnfhuSiev8W9ZMFNTzUmqhds2dKayUpLoN-z1dtsLA@mail.gmail.com
Whole thread Raw
In response to Re: Proposal: Conflict log history table for Logical Replication  (Dilip Kumar <dilipbalaut@gmail.com>)
Responses Re: Proposal: Conflict log history table for Logical Replication
List pgsql-hackers
On Sat, Jan 10, 2026 at 6:45 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
>
>>
> Here is the updated patch
>

Thanks, I will review the code. Few concerns while experimenting with 001 alone:

1)
I am able to insert and update rows in pg_conflict.pg_conflict_16394.
It should be restricted.

2)
I think we need to block 'SELECT for UPDATE' and similar operations on
CLT. Currently it is allowed on CLT.
See this:

postgres=# SELECT * FROM  pg_toast.pg_toast_3466 for UPDATE;
ERROR:  cannot lock rows in TOAST relation "pg_toast_3466"
postgres=# SELECT * FROM pg_conflict.pg_conflict_16394 for UPDATE;
....
(1 row)


3)
We currently skip ANALYZE on TOAST tables, but I’m not sure whether
the same restriction should apply to CLT. Since users are expected to
query CLT frequently, collecting statistics could be beneficial. Even
though there are currently no indexes or other structures to enable
more optimal plans, having statistics should not harm. Thoughts?

postgres=# analyze pg_toast.pg_toast_16399;
WARNING:  skipping "pg_toast_16399" --- cannot analyze non-tables or
special system tables

postgres=# analyze pg_conflict.pg_conflict_16394;
ANALYZE

4)
It will be good to show 'Conflict Log Table:' in \dRs command.

thanks
Shveta



pgsql-hackers by date:

Previous
From: Dilip Kumar
Date:
Subject: Re: Proposal: Conflict log history table for Logical Replication
Next
From: Dilip Kumar
Date:
Subject: Re: Proposal: Conflict log history table for Logical Replication