Re: doc: Clarify that empty COMMENT string removes the comment - Mailing list pgsql-hackers

From shengbin Zhao
Subject Re: doc: Clarify that empty COMMENT string removes the comment
Date
Msg-id CAA9n-n7FCYAFCeL55Qt7qePyUBav=Qifscp=hmHY35GbxUtJKw@mail.gmail.com
Whole thread Raw
In response to doc: Clarify that empty COMMENT string removes the comment  (Chao Li <li.evan.chao@gmail.com>)
List pgsql-hackers


On Thu, Feb 26, 2026 at 2:07 PM Chao Li <li.evan.chao@gmail.com> wrote:
Hi,

While reviewing patch [1] before the holiday vacation, I noticed that the COMMENT ON command treats an empty string as NULL, which effectively removes the comment from the object. Today I also saw discussion [2], which mentioned the same problem.

From the code, it seems the behavior is intentional:
```
    /* Reduce empty-string to NULL case */
    if (comment != NULL && strlen(comment) == 0)
        comment = NULL;
```

However, the documentation does not explain this behavior. It currently only says:
```
string_literal
   The new comment contents, written as a string literal.
```

Is it a common pattern that an empty string is treated as NULL, so that the documentation does not need to mention it explicitly? I don’t think so. For example, a similar command, SECURITY LABEL ON, treats an empty string as just an empty string.

This tiny patch enhances the documentation of COMMENT ON to clarify that an empty string is treated as NULL.

[1] https://postgr.es/m/e08cb97f-0364-4002-9cda-3c16b42e4136@uni-muenster.de
[2] https://postgr.es/m/CAHGQGwFJKg-aT5vajSU1v_B4K129u_SjZ3EGGHFSBhW967gcMA@mail.gmail.com

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





Hi Evan,

I've looked at your patch, and I think your change is helpful. I applied it locally and rendered the html page, it looks good to me.

Thanks!
B.R,
/Shengbin Zhao

pgsql-hackers by date:

Previous
From: Hüseyin Demir
Date:
Subject: Re: COMMENTS are not being copied in CREATE TABLE LIKE
Next
From: SATYANARAYANA NARLAPURAM
Date:
Subject: Re: synchronized_standby_slots behavior inconsistent with quorum-based synchronous replication