Re: Added schema level support for publication.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>
Cc: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, vignesh C <vignesh21(at)gmail(dot)com>, "tanghy(dot)fnst(at)fujitsu(dot)com" <tanghy(dot)fnst(at)fujitsu(dot)com>, Greg Nancarrow <gregn4422(at)gmail(dot)com>, Ajin Cherian <itsajin(at)gmail(dot)com>, "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com>, Rahila Syed <rahilasyed90(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>
Subject: Re: Added schema level support for publication.
Date: 2021-08-14 15:23:00
Message-ID: 155565.1628954580@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com> writes:
> I think the strict separation between publication-for-tables vs.
> publication-for-schemas is a mistake. Why can't I have a publication
> that publishes tables t1, t2, t3, *and* schemas s1, s2, s3. Also note
> that we have a pending patch to add sequences support to logical
> replication. So eventually, a publication will be able to contain a
> bunch of different objects of different kinds.

This seems like it's going to create a mess, because the meaning of
"include schema S" will change over time as we add more features.
That is, with the present patch (I suppose, haven't read it) we have
"schema S" meaning "publish all tables in schema S". When that other
patch lands, presumably that same publication definition would start
meaning "publish all tables and sequences in schema S". And a few years
down the road it might start meaning something else again. That sounds
like the sort of potentially app-breaking change that we don't like
to make.

We could avoid that bug-in-waiting if the syntax were more like
"FOR ALL TABLES IN SCHEMA s", which could later extend to
"FOR ALL SEQUENCES IN SCHEMA s", etc. This is then a very clean
intermediate step between publishing one table and "FOR ALL TABLES"
without a schema limitation.

I tend to agree that a single publication should be able to incorporate
any of these options.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Justin Pryzby 2021-08-14 21:47:00 Re: when the startup process doesn't (logging startup delays)
Previous Message vignesh C 2021-08-14 12:24:48 Re: Added schema level support for publication.