| From: | Nisha Moond <nisha(dot)moond412(at)gmail(dot)com> |
|---|---|
| To: | Peter Smith <smithpb2250(at)gmail(dot)com> |
| Cc: | shveta malik <shveta(dot)malik(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Support EXCEPT for TABLES IN SCHEMA publications |
| Date: | 2026-05-28 11:28:31 |
| Message-ID: | CABdArM7b_-ZggpCVGDkpRJ1XCja7ovvY9i4KKGh11jHu4xLYwg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Tue, May 26, 2026 at 11:27 AM Peter Smith <smithpb2250(at)gmail(dot)com> wrote:
>
> Hi Nisha.
>
> Some review comments for patch v6-0003.
>
Thanks for the review. All comments are addressed in v7. Please find
responses below for a few of the comments.
>
> 3.
> The <literal>EXCEPT</literal> clause can be used with
> - <literal>ADD TABLES IN SCHEMA</literal> to exclude specific tables from a
> + <literal>ADD TABLES IN SCHEMA</literal> and
> + <literal>SET TABLES IN SCHEMA</literal> to exclude specific tables from a
> schema-level publication. <literal>EXCEPT</literal> is not supported with
> <literal>DROP TABLES IN SCHEMA</literal>; instead, dropping a schema from
> the publication automatically removes all of its associated
>
> 3a.
> This whole description section seems arranged in a confusing way IMO.
> Anyway, it is not all the fault of the current patch. But I don't
> think it should be talking about "SET TABLES IN SCHEMA" here because
> that was all mentioned already in the earlier "third variant"
> paragraph.
>
Right. it seems repeating. Removed "SET TABLES IN SCHEMA" related info.
> ~
>
> 3b.
> That last sentence all about EXCEPT with DROP TABLES IN SCHEMA seems
> redundant to me. It is not allowed by the synopsis, so there is no
> possible confusion about it being supported. Isn't it better to just
> say nothing?
>
Okay, that makes sense. Fixed.
> ~~~
>
> 4b.
> This description about EXCEPT is missing talking about FOR ALL TABLES
> EXCEPT, but IIRC I already reported that in a previous review.
>
Yes, we can handle this in a separate patch.
> ~~~
>
> PublicationDropSchemas:
>
> 12.
> + /*
> + * Collect prexcept rows for tables belonging to this schema before
> + * removing the schema entry. GetExcludedPublicationTables relies on
> + * is_schema_publication(), which scans pg_publication_namespace; if
> + * this is the last schema in the publication, performDeletion() below
> + * would remove that row and make is_schema_publication() return
> + * false, tripping the assertion.
> + */
>
> What assertion?
>
The assertion is Assert(GetPublication(pubid)->alltables ||
is_schema_publication(pubid)) in GetExcludedPublicationTables().
I’ve trimmed the comment a bit, as it felt slightly over-explained.
~~~~
Please find the updated patch-set v7 attached.
--
Thanks,
Nisha
| Attachment | Content-Type | Size |
|---|---|---|
| v7-0001-Support-EXCEPT-clause-for-schema-level-publicatio.patch | application/x-patch | 47.1 KB |
| v7-0002-Add-EXCEPT-support-to-ALTER-PUBLICATION-ADD-TABLE.patch | application/x-patch | 25.9 KB |
| v7-0003-Add-EXCEPT-support-to-ALTER-PUBLICATION-SET-TABLE.patch | application/x-patch | 26.9 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Daniel Gustafsson | 2026-05-28 11:28:49 | Re: Changing the state of data checksums in a running cluster |
| Previous Message | Nisha Moond | 2026-05-28 11:28:10 | Re: Support EXCEPT for TABLES IN SCHEMA publications |