Subject: Re: Proposal: Conflict log history table for Logical Replication

From: vignesh C <[email-masked]>
Date: Thu, 1 Jan 2026 16:34:13 +0530

On Thu, 1 Jan 2026 at 12:32, shveta malik <[email-masked]> wrote:
>
> On Thu, Jan 1, 2026 at 11:43 AM vignesh C <[email-masked]> wrote:
> >
> >
> >  IsSystemClass(Oid relid, Form_pg_class reltuple)
> >  {
> >         /* IsCatalogRelationOid is a bit faster, so test that first */
> > -       return (IsCatalogRelationOid(relid) || IsToastClass(reltuple));
> > +       return (IsCatalogRelationOid(relid) || IsToastClass(reltuple)
> > +                       || IsConflictClass(reltuple));
> >  }
> >
> >
> > After this change we will not be able to truncate the user created
> > tables in pg_conflict schema:
> > postgres=# create table pg_conflict.t1(c1 int);
> > CREATE TABLE
> > postgres=# insert into pg_conflict.t1 values(1);
> > INSERT 0 1
> >
>
> But do we even want to create user-tables (other than CLT) in
> pg_conflict schema? I feel operations like creation of tables or
> moving any table in and out of pg_conflict schema (as suggested in my
> previous email) should not even be allowed, similar to pg_toast.

I also felt creation of tables should not be allowed, in case we plan
to allow creation, then the other operations also should be allowed.

Regards,
Vignesh