Re: DOCS - CREATE PUBLICATION ... EXCEPT missing details on ONLY

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.

In response to

Responses

Browse pgsql-hackers by date

  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.