Re: CREATE/ALTER PUBLICATION improvements for syntax synopsis

From: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
To: Peter Smith <smithpb2250(at)gmail(dot)com>
Cc: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: CREATE/ALTER PUBLICATION improvements for syntax synopsis
Date: 2025-11-20 00:01:39
Message-ID: 8EF969A2-DDF4-496A-8508-57A87D92E301@gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> On Nov 20, 2025, at 06:18, Peter Smith <smithpb2250(at)gmail(dot)com> wrote:
>
> Hi Fuji-San.
>
> Thanks for your suggestions! I've attached a new patch v6 to incorporate them.
>
> On Thu, Nov 20, 2025 at 4:50 AM Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
>>
>> On Tue, Nov 18, 2025 at 5:27 PM Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> wrote:
>>> Thanks for addressing the comments. V5 looks good to me.
>>
>> Thanks both for the patch and review!
>>
>> -<phrase>where <replaceable
>> class="parameter">all_publication_object</replaceable> is one
>> of:</phrase>
>> + <phrase>where <replaceable
>> class="parameter">table_spec</replaceable> is:</phrase>
>> +
>> + [ ONLY ] <replaceable
>> class="parameter">table_name</replaceable> [ * ] [ ( <replaceable
>> class="parameter">column_name</replaceable> [, ... ] ) ] [ WHERE (
>> <replaceable class="parameter">expression</replaceable> ) ]
>> +
>> +<phrase>where <replaceable
>> class="parameter">publication_all_object</replaceable> is one
>> of:</phrase>
>>
>> In other documentation files (e.g., merge.sgml, analyze.sgml), the definitions
>> of each element are chained using "and". For example, in merge.sgml:
>>
>> where data_source is:
>> ...
>> and when_clause is:
>> ...
>> and merge_insert is:
>> ...
>>
>> I think create_publication.sgml and alter_publication.sgml should follow
>> the same style for consistency. For example, in create_publication.sgml
>> we would have:
>>
>> where publication_object
>> ...
>> and publication_all_object
>> ...
>> and table_spec
>> ...
>
> +1. I never noticed this before.
>
>>
>> It seems better to put these sections in the same order that the elements
>> appear in the syntax. So I placed publication_all_object before table_spec
>> in the above example.
>>
>>
>> -<phrase>where <replaceable
>> class="parameter">all_publication_object</replaceable> is one
>> of:</phrase>
>> + <phrase>where <replaceable
>> class="parameter">table_spec</replaceable> is:</phrase>
>>
>
> OK. Done in v6.
>
>> Regarding terminology: analyze.sgml uses table_and_columns for
>> a similar syntax, and personally I think table_and_columns is clearer than
>> table_spec.
>>
>
> Thanks for the other example usages.
>
> +1 for naming it as 'table_and_columns' to be the same as everywhere else.
>

+1 as well.

V6 looks better. However, there is a typo:

In alter_publication.sgml:
```
- TABLE [ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ] [, ... ]
+ TABLE <replaceable class="parameter">table</replaceable> [, ... ]
TABLES IN SCHEMA { <replaceable class="parameter">schema_name</replaceable> | CURRENT_SCHEMA } [, ... ]
```
<replaceable class="parameter">table</replaceable> should be <replaceable class="parameter">table_and_columns</replaceable>.

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2025-11-20 00:15:59 Re: [PATCH] Add hints for invalid binary encoding names in encode/decode functions
Previous Message Corey Huinker 2025-11-19 23:55:20 Re: vacuumdb: add --dry-run