Re: Skipping schema changes in publication

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: Shlok Kyal <shlok.kyal.oss@gmail.com>
Cc: Ashutosh Sharma <ashu.coek88@gmail.com>, vignesh C <vignesh21@gmail.com>, shveta malik <shveta.malik@gmail.com>, "David G. Johnston" <david.g.johnston@gmail.com>, Dilip Kumar <dilipbalaut@gmail.com>, Peter Smith <smithpb2250@gmail.com>, "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>, YeXiu <1518981153@qq.com>, Ian Lawrence Barwick <barwick@gmail.com>, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-02-23T11:16:10Z
Lists: pgsql-hackers
On Mon, Feb 23, 2026 at 11:37 AM Shlok Kyal <shlok.kyal.oss@gmail.com> wrote:
>
> I have also modified the error message as suggested by Shveta in [2].
> Attached the latest v48 patch.
>

I see that the second patch (0002) brings complexity in the patch to
deal with following points: (a) The first complexity is if one of the
partitions is specified then how to compute the initial set of
relations to copy when pubviaroot is true. This is complex because we
need to exclude the partitions specified. (b) The other complexity is
combining Except list containing partitions and other publications
specifying partitions or partitioned tables both during replication
and probably during initial sync.

I think it will be better if for the first version, we allow only root
partitioned table to be specified in the Except Table list. This would
mean that if the user tries to attach that root partition table to
another root then we should give an error. If we go via this route, it
will be important to allow users to remove some tables from the Except
list, so we can provide Alter Publication <pub_name> Set Except Table
(table_names).

I think excluding specific partitions may also have some use cases but
adding additional complexity and maintenance effort is worth, if there
is a real field demand for such a feature.

Thoughts?

-- 
With Regards,
Amit Kapila.



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix miscellaneous issues in EXCEPT publication clause.

  2. Change syntax of EXCEPT TABLE clause in publication commands.

  3. Add support for EXCEPT TABLE in ALTER PUBLICATION.

  4. Allow table exclusions in publications via EXCEPT TABLE.

  5. Add wait_for_subscription_sync for TAP tests.