On Thu, Nov 20, 2025 at 2:06 PM Chao Li <[email protected]> wrote:
>
>
>
> > On Nov 20, 2025, at 09:41, Peter Smith <[email protected]> wrote:
> >
> > On Thu, Nov 20, 2025 at 12:03 PM Fujii Masao <[email protected]> wrote:
> >>
> >> On Thu, Nov 20, 2025 at 9:02 AM Chao Li <[email protected]> wrote:
> >>> V6 looks better.
> >>
> >> +1. Thanks for updating the patch!
> >>
> >> +<phrase>and <replaceable class="parameter">table</replaceable> 
> >> is:</phrase>
> >> +
> >> +    [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
> >>
> >> I have one question: in lock.sgml and truncate.sgml, the syntax
> >> "[ ONLY ] name [ * ] [, ... ]" seems shown as acceptable (though
> >> I'm not entirely sure it's actually valid). If that form is allowed,
> >> then this change may not be necessary?
> >>
> >
> > I think if this were strict BNF rules, then the bindings of the "..."
> > are not correct. I think the Postgres documentation is a bit loose
> > with the rules (e.g. your TRUNCATE example is deemed acceptable)
> >
> > A user might also wonder if "ONLY a,b" means the same as "ONLY a", "ONLY b"?
> >
> > But, in the interest of not bloating the ALTER PUBLICATION synopsis
> > too much, and still being consistent with what seems accepted by
> > existing PG docs, I am happy to remove that extra  'table' replacement
> > class. Maybe it's a bit ambiguous, but it seems mostly harmless.
> >
> > Thoughts?
> >
>
> I think the new code of publication_drop_object has changed the original 
> meaning.
>
> Old code:
> ```
> -    TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ 
> * ] [, ... ]
> ```
>
> Means the drop clause can be:
> ```
> ALTER PUBLICATION DROP TABLE ONLY t1*, TABLE ONLY t2*
> ```
>
> Now, the new code:
> ```
> +    TABLE  <replaceable class="parameter">table</replaceable> [, … ]
> <phrase>and <replaceable class="parameter">table</replaceable> is:</phrase>
> +
> +    [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ]
> ```
>
> Changes the meaning to:
> ```
> ALTER PUBLICATION DROP TABLE ONLY t1*, ONLY t2*
> ```
>

There are 2 sets of ellipses:
Here: "publication_drop_object [, ...]"
And here "TABLE  <replaceable class="parameter">table</replaceable> [, … ]"

So I think there is no change of meaning. AFAICT all variations are
possible, same as they always were. It just depends which way you
squint at the syntax -- e.g. are you conceptually expanding another
"publication_drop_objecr"  replacement or expanding another "table"
replacement.

> So, I think we should keep the old code.

Anyway, I am happy to go back to the old code. I'll post another patch
later to do that.

======
Kind Regards,
Peter Smith.
Fujitsu Australia


Reply via email to