pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Amit Kapila <akapila@postgresql.org>
To: pgsql-committers@lists.postgresql.org
Subject: pgsql: Add support for EXCEPT TABLE in ALTER PUBLICATION.
Date: Fri, 20 Mar 2026 06:12:17 +0000
Message-ID: <E1w3T5k-000bI4-0j@gemulon.postgresql.org> (raw)

Add support for EXCEPT TABLE in ALTER PUBLICATION.

Following commit fd366065e0, which added EXCEPT TABLE support to
CREATE PUBLICATION, this commit extends ALTER PUBLICATION to allow
modifying the exclusion list.

New Syntax:
ALTER PUBLICATION name SET  publication_all_object [, ... ]

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

If the EXCEPT clause is provided, the existing exclusion list in
pg_publication_rel is replaced with the specified relations. If the
EXCEPT clause is omitted, any existing exclusions for the publication
are cleared. Similarly, SET ALL SEQUENCES updates

Note that because this is a SET command, specifying only one object
type (e.g., SET ALL SEQUENCES) will reset the other unspecified flags
(e.g., setting puballtables to false).

Consistent with CREATE PUBLICATION, only root partitioned tables or
standard tables can be specified in the EXCEPT list. Specifying a
partition child will result in an error.

Author: vignesh C <vignesh21@gmail.com>
Reviewed-by: shveta malik <shveta.malik@gmail.com>
Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Reviewed-by: Peter Smith <smithpb2250@gmail.com>
Reviewed-by: Nisha Moond <nisha.moond412@gmail.com>
Discussion: https://postgr.es/m/CALDaNm3=JrucjhiiwsYQw5-PGtBHFONa6F7hhWCXMsGvh=tamA@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/493f8c6439cf64d75883c650b5dd573d8fe0664b

Modified Files
--------------
doc/src/sgml/ref/alter_publication.sgml   |  79 ++++++++++++++++----
src/backend/catalog/pg_publication.c      |  66 +++++++++++++++--
src/backend/commands/publicationcmds.c    | 116 +++++++++++++++++++++++++++---
src/backend/commands/tablecmds.c          |   3 +-
src/backend/parser/gram.y                 |  23 ++++++
src/bin/psql/tab-complete.in.c            |  13 +++-
src/include/catalog/pg_publication.h      |   4 +-
src/include/nodes/parsenodes.h            |   2 +
src/test/regress/expected/publication.out |  93 +++++++++++++++++++++++-
src/test/regress/sql/publication.sql      |  55 +++++++++++++-
src/test/subscription/t/037_except.pl     |  36 +++++++++-
11 files changed, 453 insertions(+), 37 deletions(-)



Message-ID: <E1w3T5k-000bI4-0j@gemulon.postgresql.org>
Permalink:  ../E1w3T5k-000bI4-0j@gemulon.postgresql.org/
Also on:    postgresql.org/message-id/E1w3T5k-000bI4-0j@gemulon.postgresql.org

 · 

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: pgsql-committers@postgresql.org
  Cc: akapila@postgresql.org, pgsql-committers@lists.postgresql.org
  Subject: Re: pgsql: Add support for EXCEPT TABLE in ALTER PUBLICATION.
  In-Reply-To: <E1w3T5k-000bI4-0j@gemulon.postgresql.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox