On Thu, Feb 26, 2026 at 8:44 PM Chao Li <[email protected]> wrote:

>
>
> > On Feb 26, 2026, at 23:56, David G. Johnston <[email protected]>
> wrote:
> >
> > On Thu, Feb 26, 2026 at 5:02 AM Ashutosh Bapat <
> [email protected]> wrote:
> > At the beginning of this synopsis there's following sentence. I think
> > we need to update it too.
> > To remove a
> >    comment, write <literal>NULL</literal> in place of the text string.
> >
> >
> > I concur this should be a bit less surgical than what is presently
> proposed.  I would do the following:
> >
> > diff --git a/doc/src/sgml/ref/comment.sgml
> b/doc/src/sgml/ref/comment.sgml
> > index 8d81244910b..45d39e1fc45 100644
> > --- a/doc/src/sgml/ref/comment.sgml
> > +++ b/doc/src/sgml/ref/comment.sgml
> > @@ -66,7 +66,7 @@ COMMENT ON
> >    TRIGGER <replaceable class="parameter">trigger_name</replaceable> ON
> <replaceable class="parameter">table_name</replaceable> |
> >    TYPE <replaceable class="parameter">object_name</replaceable> |
> >    VIEW <replaceable class="parameter">object_name</replaceable>
> > -} IS { <replaceable class="parameter">string_literal</replaceable> |
> NULL }
> > +} IS { <replaceable class="parameter">string_literal</replaceable> | ''
> | NULL }
>
> I don’t think this is necessary, as I guess we don’t want to encourage the
> usage of empty string, NULL is clearer.


I accept that.  The proscriptive form of the Description paragraph below is
even worse in this regard though.  It reads as permission to write an empty
string to remove a comment.  The descriptive form is more neutral.


> >    <para>
> > -   Only one comment string is stored for each object, so to modify a
> comment,
> > -   issue a new <command>COMMENT</command> command for the same object.
> To remove a
> > -   comment, write <literal>NULL</literal> in place of the text string.
> > +   Each object may have one comment, which will be nonempty.  Setting
> the
> > +   comment to an empty string or <literal>NULL</literal> drops the
> comment.
> >     Comments are automatically dropped when their object is dropped.
> >    </para>
>
> I didn’t completely take your wording, but I added “empty string” in this
> paragraph.
>
>
    <para>
    Only one comment string is stored for each object, so to modify a
comment,
    issue a new <command>COMMENT</command> command for the same object.  To
remove a
-   comment, write <literal>NULL</literal> in place of the text string.
+   comment, use <literal>NULL</literal> or an empty string
(<literal>''</literal>).
    Comments are automatically dropped when their object is dropped.
   </para>

I can live with this but am not a fan.  I'd like you to point out other
examples in the documentation references where we use this style of
communication in the description (i.e., telling the user directly what they
should be doing, as opposed to explaining how certain commands and values
are interpreted).  I've looked at Grant, Reindex, Vacuum, Update, and
Execute: they are all descriptive, not proscriptive, in tone.  We should
take this opportunity to make this page conform to the standard established
elsewhere.  I'm not seeing any particular virtue to leaving this page
unique in that regard.  And mention above a reason not to.

David J.

Reply via email to