Re: Skipping schema changes in publication

Shlok Kyal <shlok.kyal.oss@gmail.com>

From: Shlok Kyal <shlok.kyal.oss@gmail.com>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: shveta malik <shveta.malik@gmail.com>, vignesh C <vignesh21@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-19T04:45:06Z
Lists: pgsql-hackers
On Wed, 18 Feb 2026 at 16:34, Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> On Wed, Feb 18, 2026 at 11:41 AM Amit Kapila <amit.kapila16@gmail.com> wrote:
> >
> > On Tue, Feb 17, 2026 at 5:08 PM shveta malik <shveta.malik@gmail.com> wrote:
> > >
> >
> > > 7)
> > > Currently the error i s:
> > >
> > > postgres=# create subscription sub1 connection '...' publication pub1,pub2,pub3;
> > > ERROR:  publications "pub1", "pub2", "pub3" are defined with EXCEPT TABLE
> > > HINT:  Subscription cannot be created using multiple publications that
> > > specify EXCEPT TABLE.
> > >
> > > Hint looks more like DETAIL. Shall we have this:
> > >
> > > ERROR:  cannot create subscription with multiple publications that
> > > specify EXCEPT TABLE
> > > DETAIL:  The publications "pub1", "pub2", and "pub3" define EXCEPT
> > > TABLE clauses.
> > >
> >
> > So, you are talking about below error:
> > + ereport(ERROR,
> > + errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
> > + errmsg("publications %s are defined with EXCEPT TABLE", pubnames.data),
> > + errhint("Subscription cannot be created using multiple publications
> > that specify EXCEPT TABLE."));
> >
> > Apart from the message, the error code here should be
> > ERRCODE_FEATURE_NOT_SUPPORTED. How about an errmsg like: "cannot
> > combine publications %s with EXCEPT TABLE clauses",
> > except_publications? If we choose a message like that then we don't
> > need a hint. I suggest you can refer to the following column list
> > message to form a message for the except clause.
> >
> > ereport(ERROR,
> > errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
> > errmsg("cannot use different column lists for table \"%s.%s\" in
> > different publications",
> >    nspname, relname));
> >
>
> Based on the above, the following message should also be changed:
> + ereport(ERROR,
> + errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
> + errmsg("cannot use multiple publications with EXCEPT TABLE lists"),
> + errdetail("The following publications have exceptions: %s.",
> +   pub_names_str.data));
>
> Few more minor comments:
> 1.
> + elog(LOG, "fetch_relation_list: executing query to fetch
> effectiverelations: \n%s",
> + cmd.data);
>
> space is required between effective and relations.
>
> 2.
> @@ -10858,6 +10862,7 @@ PublicationObjSpec:
>                      $$->pubtable->relation = $2;
>                      $$->pubtable->columns = $3;
>                      $$->pubtable->whereClause = $4;
> +                    $$->location = @1;
> what is purpose of this change in PublicationObjSpec?
>
> 3.
> + elog(LOG, "Executing query to get the tables:\n%s", cmd.data);
>
> This can be more specific. How about "Executing query to get the
> partition tables to be copied" or something like that?
>
Hi Amit,

Thanks for reviewing the patch. I have addressed the above comments
and the minor comments in [1] in v46 patch.
I have shared v46 patch in [2].

[1]: https://www.postgresql.org/message-id/CAA4eK1KWqttt3UMdR8P0wYyqDO6cuLhuvGb5cDpuctG8F10EFA%40mail.gmail.com
[2]: https://www.postgresql.org/message-id/CANhcyEXBw0NeCmrbzSEQ3bBHzzEwvyLo-rOx0migTtfm-H4sNw%40mail.gmail.com

Thanks,
Shlok Kyal



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.