why can't a table be part of the same publication as its schema

Peter Eisentraut <peter.eisentraut@enterprisedb.com>

From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-09-08T11:36:07Z
Lists: pgsql-hackers
Apparently, you can't add a table to a publication if its schema is 
already part of the publication (and vice versa), e.g.,

=# alter publication p1 add table s1.t1;
ERROR:  22023: cannot add relation "s1.t1" to publication
DETAIL:  Table's schema "s1" is already part of the publication or part 
of the specified schema list.

Is there a reason for this?  It looks a bit like a misfeature to me.  It 
constrains how you can move your tables around between schemas, based on 
how somewhere else a publication has been constructed.

It seems to me that it shouldn't be difficult to handle the case that a 
table is part of the publication via two different routes.  (We must 
already handle that since a subscription can use more than one publication.)



Commits

  1. Allow publications with schema and table of the same schema.