| From: | Dilip Kumar <dilipbalaut(at)gmail(dot)com> |
|---|---|
| To: | vignesh C <vignesh21(at)gmail(dot)com> |
| Cc: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, shveta malik <shveta(dot)malik(at)gmail(dot)com>, Nisha Moond <nisha(dot)moond412(at)gmail(dot)com>, Peter Smith <smithpb2250(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Proposal: Conflict log history table for Logical Replication |
| Date: | 2026-06-16 10:41:55 |
| Message-ID: | CAFiTN-tVnCA9osALT=sNJdo5b40VqLfBLLAzwixCKjj=gzXmVw@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Tue, Jun 16, 2026 at 9:27 AM vignesh C <vignesh21(at)gmail(dot)com> wrote:
>
> On Mon, 15 Jun 2026 at 14:20, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> >
> > > 2. Views are disallowed, but functions are allowed
> > > Creating a view in the pg_conflict schema is rejected:
> > > postgres=# CREATE VIEW v1 AS
> > > SELECT * FROM pg_conflict.pg_conflict_log_16435;
> > > ERROR: permission denied to create "pg_conflict.v1"
> > > DETAIL: Conflict schema modifications are currently disallowed.
> > >
> > > However, creating a function in the same schema succeeds:
> > > CREATE FUNCTION pg_conflict.get_conflict_count()
> > > RETURNS bigint
> > > LANGUAGE sql
> > > AS $$
> > > SELECT count(*) FROM pg_conflict.pg_conflict_log_16404;
> > > $$;
> > > CREATE FUNCTION
> > >
> >
> > This is okay because the function is doing SELECT which we allow on
> > these tables.
>
> 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.
o ensure we are aligned, I want to clarify the current behavior before
we decide on the next steps. Currently, view and function creation are
both permitted for toast and conflict tables. However, there is a
discrepancy in the schemas: view creation is blocked in the
'pg_conflict' and 'pg_toast' schemas, while function creation is
allowed in both. So IIUC we need to take a call whether the function
creation should be blocked in pg_conflict schema or not, logically we
can say it can be blocked but we might need to discuss on this because
it's allowed in the `pg_toast` schema. And if we are worried about
the descripency that functions are allowed in this schema but views
are not, I don't think we need to worry about this, this is an
existing behaviour for toast also and if we want to can investigate as
a separate thread and fix it for system schema al together? Am I
missing something here?
postgres[2205601]=# CREATE VIEW v2 AS select * from pg_toast.pg_toast_16412;
CREATE VIEW
postgres[2205601]=# CREATE VIEW v3 AS select * from
pg_conflict.pg_conflict_log_16406;
CREATE VIEW
CREATE VIEW pg_toast.v5 AS select * from pg_toast.pg_toast_16412;
ERROR: 42501: permission denied to create "pg_toast.v5"
DETAIL: System catalog modifications are currently disallowed.
LOCATION: heap_create, heap.c:322
postgres[2205601]=# CREATE VIEW pg_conflict.v5 AS select * from
pg_conflict.pg_conflict_log_16406;
ERROR: 42501: permission denied to create "pg_conflict.v5"
DETAIL: Conflict schema modifications are currently disallowed.
LOCATION: heap_create, heap.c:329
postgres[2205601]=# CREATE FUNCTION pg_conflict.get_conflict_count()
RETURNS bigint
LANGUAGE sql
AS $$
SELECT count(*) FROM pg_conflict.pg_conflict_log_16406;
$$;
CREATE FUNCTION
postgres[2205601]=# CREATE FUNCTION pg_toast.get_toast_count()
RETURNS bigint
LANGUAGE sql
AS $$
SELECT count(*) FROM pg_toast.pg_toast_16412;
$$;
CREATE FUNCTION
--
Regards,
Dilip Kumar
Google
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Ashutosh Sharma | 2026-06-16 10:42:43 | Re: synchronized_standby_slots behavior inconsistent with quorum-based synchronous replication |
| Previous Message | Zhijie Hou (Fujitsu) | 2026-06-16 10:32:14 | RE: Fix race in ReplicationSlotRelease for ephemeral slots |