public inbox for [email protected]
help / color / mirror / Atom feedFrom: Masahiko Sawada <[email protected]>
To: Amit Kapila <[email protected]>
Cc: Peter Smith <[email protected]>
Cc: Hayato Kuroda (Fujitsu) <[email protected]>
Cc: shveta malik <[email protected]>
Cc: vignesh C <[email protected]>
Cc: Shlok Kyal <[email protected]>
Cc: Nisha Moond <[email protected]>
Cc: Ashutosh Sharma <[email protected]>
Cc: David G. Johnston <[email protected]>
Cc: Dilip Kumar <[email protected]>
Cc: Zhijie Hou (Fujitsu) <[email protected]>
Cc: YeXiu <[email protected]>
Cc: Ian Lawrence Barwick <[email protected]>
Cc: Bharath Rupireddy <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Subject: Re: Skipping schema changes in publication
Date: Fri, 13 Mar 2026 11:21:16 -0700
Message-ID: <CAD21AoAb8E8krN63cY_U7RQs9v-zkqUZyKT_UVKDwKfExtvTBg@mail.gmail.com> (raw)
In-Reply-To: <CAA4eK1LaSfAG7UAuy1xpnkWKM_YtrPuhbgAxYBFY3Sp_v_KqoQ@mail.gmail.com>
References: <CAJpy0uB20MhJJEaPJdm31t4fykJ+fChA_76jU2P9HX5knbJvAA@mail.gmail.com>
<CAD21AoCC8XuwfX62qKBSfHUAoww_XB3_84HjswgL9jxQy696yw@mail.gmail.com>
<OS9PR01MB12149EA0C749BC29C7C949E32F544A@OS9PR01MB12149.jpnprd01.prod.outlook.com>
<CAD21AoBbZEshyaK0PeiF_J4_S75EfF=Gcs=C+X-osoVoUnawuQ@mail.gmail.com>
<CAHut+PssG+sHeV+Xo0g=S7xBb9FgDPjHYDR4iSuOdYXDq-Psng@mail.gmail.com>
<CAA4eK1LaSfAG7UAuy1xpnkWKM_YtrPuhbgAxYBFY3Sp_v_KqoQ@mail.gmail.com>
On Fri, Mar 13, 2026 at 2:51 AM Amit Kapila <[email protected]> wrote:
>
> On Fri, Mar 13, 2026 at 8:55 AM Peter Smith <[email protected]> wrote:
> >
> > Hou-San (off-list) gave an interesting example of how it might look
> > when the example is combined with the hypothetical future ability to
> > exclude all schema tables from a "FOR ALL TABLES"
> > CREATE PUBLICATION pub FOR ALL TABLES EXCEPT (TABLE t1, t2, TABLES IN
> > SCHEMA s1);
> >
>
> So, if we follow this, in future, the syntax would look like:
> Create publication pub1 FOR ALL TABLES EXCEPT (TABLE t1, t2, TABLES IN
> SCHEMA s1, s2), ALL SEQUENCES EXCEPT (SEQUENCE s1);
>
> I think if we use the above syntax then one can also argue that why
> not use FOR ALL (TABLES, SEQUENCES) instead of ALL TABLES, ALL
> SEQUENCES.
The same is true for the syntaxes of TABLE(t1, t2) and SCHEMA(s1, s2),
no? If we allow grouping the tables and the schemas by TABLE and
SCHEMA keywords respectively in exclusion lists, one could argue why
we don't allow it for the inclusion list.
>
> Instead the current command would like:
> Create publication pub1 FOR ALL TABLES EXCEPT TABLE (t1, t2), EXCEPT
> TABLES IN SCHEMA (s1, s2), ALL SEQUENCES EXCEPT SEQUENCE (seq1, seq2);
>
> Though it is slightly lengthy it makes the syntax local such that the
> meaning of a clause is determined by what is inside it, not by
> something that appears ten words later.
While it helps the syntax locality, I'm concerned that it could make
the context of the EXCEPT clause ambiguous. For example, IIUC the
above syntax rule would allow us to write:
CREATE PUBLICATION pub1 FOR ALL TABLES EXCEPT TABLES IN SCHEMA (s1),
EXCEPT TABLE (t1);
Regarding the second EXCEPT clause, while one might think it excludes
t1 from ALL TABLES, one might think it excludes t1 from the first
EXCLUDE clause (i.e., the publication actually includes t1 in the
publication).
Regards,
--
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com
view thread (377+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
Subject: Re: Skipping schema changes in publication
In-Reply-To: <CAD21AoAb8E8krN63cY_U7RQs9v-zkqUZyKT_UVKDwKfExtvTBg@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox