On Tue, Apr 14, 2026 at 8:46 PM vignesh C <vignesh21@gmail.com> wrote:
>
> When an EXCEPT table is specified together with TABLES IN SCHEMA sch1,
> the EXCEPT entry is correctly created:
> postgres=# create publication pub1 for tables in schema sch1 except (sch1.t1);
> CREATE PUBLICATION
>
> postgres=# \dRp+ pub1
> Publication pub1
> Owner | All tables | All sequences | Inserts | Updates | Deletes |
> Truncates | Generated columns | Via root | Description
>
---------+------------+---------------+---------+---------+---------+-----------+-------------------+----------+-------------
> vignesh | f | f | t | t | t |
> t | none | f |
> Tables from schemas:
> "sch1"
> Except tables:
> "sch1.t1"
> However, after dropping the schema from the publication, the
> previously recorded EXCEPT table entry is still retained:
> postgres=# alter publication pub1 drop TABLES IN SCHEMA sch1 ;
> ALTER PUBLICATION
> postgres=# \dRp+ pub1
> Publication pub1
> Owner | All tables | All sequences | Inserts | Updates | Deletes |
> Truncates | Generated columns | Via root | Description
>
---------+------------+---------------+---------+---------+---------+-----------+-------------------+----------+-------------
> vignesh | f | f | t | t | t |
> t | none | f |
> Except tables:
> "sch1.t1"
>
> This seems incorrect, because once sch1 is no longer part of the
> publication, retaining "sch1.t1" as an EXCEPT entry no longer has any
> semantic meaning and leaves behind stale catalog state.
>
This is handled in v1-003 (last) patch along with other ALTER
PUBLICATION related modifications.
--
Thanks,
Nisha