Re: Proposal: Conflict log history table for Logical Replication

Dilip Kumar <dilipbalaut@gmail.com>

From: Dilip Kumar <dilipbalaut@gmail.com>
To: shveta malik <shveta.malik@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, vignesh C <vignesh21@gmail.com>, Nisha Moond <nisha.moond412@gmail.com>, Peter Smith <smithpb2250@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-06-16T09:43:24Z
Lists: pgsql-hackers
On Tue, Jun 16, 2026 at 10:30 AM shveta malik <shveta.malik@gmail.com> wrote:
>
> On Tue, Jun 16, 2026 at 10:21 AM Amit Kapila <amit.kapila16@gmail.com> wrote:
> >
> > On Tue, Jun 16, 2026 at 9:56 AM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> > >
> > > On Tue, Jun 16, 2026 at 9:27 AM vignesh C <vignesh21@gmail.com> wrote:
> > > >
> > > > Shouldn’t creating a view also be allowed for the same reason?
> > > >
> > > > The function is permitted because it only performs a SELECT on the
> > > > conflict log table, and such read operations are allowed. A view
> > > > likewise represents a stored query definition and does not modify the
> > > > conflict schema or its underlying tables. Given that direct queries on
> > > > the conflict log tables are already permitted, allowing users to
> > > > define views over them is consistent with the same rationale applied
> > > > to functions.
> > >
> > > Whats is the behavior of toast table w.r.t the function vs view?
> > >
> >
> > I think sticking to the minimum set of commands that are required for
> > the user to monitor/maintain CLT should be a good goal for the first
> > version. We can evaluate to allow other commands based on real user
> > need and its impact on the functionality. So, it is okay to block even
> > the view on CLT for now.
> >
>
> A view is essentially just a stored SELECT query, I think it should be
> allowed in the first version itself. Rest (functions, indexes,
> statistics etc) can be decided and implemented later based on user's
> feedback.

IMHI, while we could allow view creation, it is unlikely users will
perform operations critical enough to require views or stored
procedures on the CLT. For the initial version, providing SELECT,
DELETE, and TRUNCATE permissions should be sufficient. We can
introduce support for views and user- or system-created indexes in
subsequent releases.

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

  2. Avoid orphaned objects dependencies