public inbox for [email protected]  
help / color / mirror / Atom feed
From: Peter Smith <[email protected]>
To: vignesh C <[email protected]>
Cc: Amit Kapila <[email protected]>
Cc: Dilip Kumar <[email protected]>
Cc: shveta malik <[email protected]>
Cc: Masahiko Sawada <[email protected]>
Cc: Hayato Kuroda (Fujitsu) <[email protected]>
Cc: Shlok Kyal <[email protected]>
Cc: Nisha Moond <[email protected]>
Cc: Ashutosh Sharma <[email protected]>
Cc: David G. Johnston <[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, 27 Mar 2026 12:36:14 +1100
Message-ID: <CAHut+PthJx_gZJNgF=mWSpkWjQJ58KyhrZ7D7CkX_TVq12wv7A@mail.gmail.com> (raw)
In-Reply-To: <CALDaNm3cdoT58E3QtYCwBbzyxYJjoS2k7Q0EgzR9ta6fyDGHSg@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>
	<CAD21AoAb8E8krN63cY_U7RQs9v-zkqUZyKT_UVKDwKfExtvTBg@mail.gmail.com>
	<CAA4eK1K1GLR7DXSABayQE+pWM=v1ODD6haPYxuDhAYwJN5gjzg@mail.gmail.com>
	<CALDaNm2kvFahDDvdgCNo=Nv-COz_N5Xw8YmzQBN2bd3g=N81fQ@mail.gmail.com>
	<CAHut+PsCqTR_kQu5M1TqBjnE6KM5cO22aH8boHfpMa_gSJBmWg@mail.gmail.com>
	<CALDaNm2OOgmNOPpABUU+AXzHhfrLG9HMfSd3jfNe=t3dc-kp1Q@mail.gmail.com>
	<CAJpy0uCN4gfP7fSt__KdW5wYQ82650Z6L4YLnjRHZTQ1yir1mg@mail.gmail.com>
	<CALDaNm32+c6RTE5xR6sJ=MZGgwEtzjkxpov_Hu70MXfbvmN+=Q@mail.gmail.com>
	<CAHut+PtQbK9USLepyzArXFoNuLok1MsBu_Jg4UT=koZocombFw@mail.gmail.com>
	<CALDaNm1tKuU479T=winBqoMb3MzO3Mta2juk8W3t2R5ps0_zyg@mail.gmail.com>
	<CALDaNm3jpYs7ALcU6m5=Li=udidjZoW5dMpyCFs8QHGaf0S8+A@mail.gmail.com>
	<CAJpy0uCWS=ybBKG-kRAfdWEe1VBNj+VqpAUUoT8MPaNS7EggiA@mail.gmail.com>
	<CAA4eK1LMM-P4NatbkjG-96B7hHC7KYrJ8XTsCZQy0jLO9Qj4Bw@mail.gmail.com>
	<CAJpy0uAyf71QSYitBf4WbCYq22HDR6LPdxB12TpTgTRpczwphw@mail.gmail.com>
	<CAFiTN-s5PW121mBGKin20YEQpZkWefMehmP=v+0onzEaMQpwdw@mail.gmail.com>
	<CAA4eK1LBf5asit18HcqcFinOkdCjD6Lk2Eid9PDhtH6acwYb8w@mail.gmail.com>
	<CALDaNm3cdoT58E3QtYCwBbzyxYJjoS2k7Q0EgzR9ta6fyDGHSg@mail.gmail.com>

On Fri, Mar 27, 2026 at 2:24 AM vignesh C <[email protected]> wrote:
>
...
> > By now multiple people (Dilip Kumar, Peter Smith, Sawada Masahiko)
> > have preferred the alternate syntax, to move TABLE inside () to make
> > specifying inclusion and exclusion list in a similar way. Unless we
> > have more feedback, I think we can change it now.
>
> Attached patch has the changes for the same.
>

Hi Vignesh.

Here are some review comments for the new syntax patch 0001.

======
doc/src/sgml/ref/create_publication.sgml

1.
-    ALL TABLES [ EXCEPT TABLE ( <replaceable
class="parameter">except_table_object</replaceable> [, ... ] ) ]
+    ALL TABLES [ EXCEPT ( TABLE  <replaceable
class="parameter">except_table_object</replaceable> [, ... ] ) ]

I don't think this is correct. To have the same flexibility as the
TABLE inclusion lists, the TABLE keyword needs to be inside the
<except_table_object>, and there need to be more ellipses there too.

e.g. Like this:

and publication_all_object is one of:
    ALL TABLES [ EXCEPT ( except_table_object [, ... ] ) ]
    ALL SEQUENCES

and except_table_object is:
    TABLE { [ ONLY ] table_name [ * ] } [, ...]

~~~

2.
The CREATE PUBLICATION page still refers to "EXCEPT TABLE" in multiple places.

Perhaps now it should be called "EXCEPT (TABLE) clause" or just
"EXCEPT clause" or something else.

======
doc/src/sgml/ref/alter_publication.sgml

3.
-    ALL TABLES [ EXCEPT TABLE ( <replaceable
class="parameter">except_table_object</replaceable> [, ... ] ) ]
+    ALL TABLES [ EXCEPT ( TABLE  <replaceable
class="parameter">except_table_object</replaceable> [, ... ] ) ]

This ALTER PUBLICATION synopsis should have the same/similar changes
as in the above review comment above for the CREATE PUBLICATION
synopsis.

e.g.

and publication_all_object is one of:
    ALL TABLES [ EXCEPT ( except_table_object [, ... ] ) ]
    ALL SEQUENCES

and except_table_object is:
    TABLE { [ ONLY ] table_name [ * ] } [, ...]

~~~

4.
Also, similar to the earlier review comment, this ALTER PUBLICATION
page still refers to "EXCEPT TABLE" in multiple places.

Perhaps now it should be called "EXCEPT (TABLE) clause" or just "EXCEPT clause".

======
src/backend/parser/gram.y

5.
- EXCEPT TABLE '(' pub_except_obj_list ')' { $$ = $4; }
+ EXCEPT '(' TABLE pub_except_obj_list ')' { $$ = $4; }

Same review comment as my above synopsis comments.

This patch implementation only supports EXCEPT (TABLE t1,t2,t3);

Specifically, it doesn't have the same flexibility you get from a
table inclusion list.

e.g. IMO cmd should also work for:
EXCEPT (TABLE t1, TABLE t2,t3);
etc.

======
src/bin/pg_dump/pg_dump.c

6.
Code comment still refers to "EXCEPT TABLE clause", but it doesn't
look like that anymore.

======
src/test/regress/sql/publication.sql

7.
Comments still refer to "EXCEPT TABLE" and "EXCEPT TABLE clause", but
it doesn't look like that anymore.

~~~

8.
There needs to be additional tests to confirm that the syntax has the
same flexibility as TABLE inclusion lists do

e.g. all these variations below are valid and equivalent:
... EXCEPT (TABLE t1, t2, t3, t4);
... EXCEPT (TABLE t1, t2, TABLE t3, t4);
... EXCEPT (TABLE t1, t2, TABLE t3, t4);
... EXCEPT (TABLE t1, TABLE t2, TABLE t3, TABLE t4);

======
src/test/subscription/t/037_except.pl

9.
Comments still refer to "EXCEPT TABLE", but it doesn't look like that anymore.

======
(more files)

10.
There are still more source files (not currently part of this patch)
that are still calling this the "EXCEPT TABLE" clause, even though the
syntax is different now.

e.g. "src/backend/commands/publicationcmds.c" and others.

Need to search the master source to find every affected comment.

======
Kind Regards,
Peter Smith.
Fujitsu Australia





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: <CAHut+PthJx_gZJNgF=mWSpkWjQJ58KyhrZ7D7CkX_TVq12wv7A@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