| From: | Peter Smith <smithpb2250(at)gmail(dot)com> |
|---|---|
| To: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
| Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: DOCS - CREATE PUBLICATION ... EXCEPT missing details on ONLY |
| Date: | 2026-04-20 00:14:17 |
| Message-ID: | CAHut+PuUdhCMqKiCs1Rpp9YP07djN4BWwXQ8E5kS5xYYg+-nzQ@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Fri, Apr 17, 2026 at 8:44 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
>
> On Fri, Apr 17, 2026 at 5:26 AM Peter Smith <smithpb2250(at)gmail(dot)com> wrote:
> >
> > Currently, the EXCEPT (TABLE ...) part mentions how 'ONLY' and '*'
> > work for inheritance tables, but how they have no effect for
> > partitioned tables [1].
> >
> > It seems we accidentally missed saying that these also have no effect
> > for *regular* tables.
> >
>
> The sentence you quoted speaks about partitioned tables specifically,
> so not mentioning regular tables there seems reasonable to me.
>
I think you missed my point.
The EXCEPT clause syntax allows any of the following:
... EXCEPT (TABLE ONLY parent_table);
... EXCEPT (TABLE parent_table *);
... EXCEPT (TABLE ONLY partitioned_root_table);
... EXCEPT (TABLE partitioned_root_table *);
... EXCEPT (TABLE ONLY regular_table);
... EXCEPT (TABLE regular_table *);
~~
Where:
1. Using ONLY/* for parent_table has a meaning.
2. Using ONLY/* for partitioned_root_table has no meaning but it is
allowed/ignored.
3. Using ONLY/* for regular_table has no meaning but it is allowed/ignored.
The EXCEPT clause documentation already described cases 1 and 2, but
it said nothing about case 3.
I could have left the original 'partitioned tables' paragraph alone,
and then written separately about the regular tables. e.g:
------
For partitioned tables, only the root partitioned table may be
specified in EXCEPT. Doing so excludes the root table and all of its
partitions from replication. The optional ONLY and * has no effect for
partitioned tables.
The optional ONLY and * have no effect for regular tables.
------
But it seemed unnecessarily repetitive, so the patch seperates that
common behaviour to say:
------
For partitioned tables, only the root partitioned table may be
specified in EXCEPT. Doing so excludes the root table and all of its
partitions from replication.
The optional ONLY and * have no effect for regular or partitioned tables.
------
======
Kind Regards,
Peter Smith.
Fujitsu Australia.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | SATYANARAYANA NARLAPURAM | 2026-04-20 00:32:55 | Re: [BUG]: WHERE CURRENT OF cursor fail on tables that have virtual generated columns |
| Previous Message | Dmitry Koval | 2026-04-20 00:04:28 | Re: MERGE PARTITIONS and DEPENDS ON EXTENSION. |