| From: | Japin Li <japinli(at)hotmail(dot)com> |
|---|---|
| To: | Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> |
| Cc: | Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: Remove deprecated role membership options from psql help for CREATE USER/GROUP |
| Date: | 2026-01-07 11:06:21 |
| Message-ID: | MEAPR01MB30316011F7E46FEAB98013C7B684A@MEAPR01MB3031.ausprd01.prod.outlook.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Wed, 07 Jan 2026 at 18:52, Japin Li <japinli(at)hotmail(dot)com> wrote:
> On Wed, 07 Jan 2026 at 17:30, Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com> wrote:
>>> On Jan 6, 2026, at 18:16, Japin Li <japinli(at)hotmail(dot)com> wrote:
>>>
>>>
>>> Hi,
>>>
>>> When I review [1], I found commit 8e78f0a1 deprecated the IN GROUP and USER
>>> clauses in CREATE ROLE, and also removed IN GROUP and USER from the psql \h
>>> CREATE ROLE help output.
>>>
>>> However, the psql help for the legacy synonyms CREATE USER and CREATE GROUP
>>> still lists the deprecated options:
>>>
>>> - IN GROUP role_name [, ...]
>>> - USER role_name [, ...]
>>>
>>> postgres=# \h create role
>>> Command: CREATE ROLE
>>> Description: define a new database role
>>> Syntax:
>>> CREATE ROLE name [ [ WITH ] option [ ... ] ]
>>>
>>> where option can be:
>>>
>>> SUPERUSER | NOSUPERUSER
>>> | CREATEDB | NOCREATEDB
>>> | CREATEROLE | NOCREATEROLE
>>> | INHERIT | NOINHERIT
>>> | LOGIN | NOLOGIN
>>> | REPLICATION | NOREPLICATION
>>> | BYPASSRLS | NOBYPASSRLS
>>> | CONNECTION LIMIT connlimit
>>> | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
>>> | VALID UNTIL 'timestamp'
>>> | IN ROLE role_name [, ...]
>>> | ROLE role_name [, ...]
>>> | ADMIN role_name [, ...]
>>> | SYSID uid
>>>
>>> URL: https://www.postgresql.org/docs/devel/sql-createrole.html
>>>
>>> postgres=# \h create user
>>> Command: CREATE USER
>>> Description: define a new database role
>>> Syntax:
>>> CREATE USER name [ [ WITH ] option [ ... ] ]
>>>
>>> where option can be:
>>>
>>> SUPERUSER | NOSUPERUSER
>>> | CREATEDB | NOCREATEDB
>>> | CREATEROLE | NOCREATEROLE
>>> | INHERIT | NOINHERIT
>>> | LOGIN | NOLOGIN
>>> | REPLICATION | NOREPLICATION
>>> | BYPASSRLS | NOBYPASSRLS
>>> | CONNECTION LIMIT connlimit
>>> | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
>>> | VALID UNTIL 'timestamp'
>>> | IN ROLE role_name [, ...]
>>> | IN GROUP role_name [, ...]
>>> | ROLE role_name [, ...]
>>> | ADMIN role_name [, ...]
>>> | USER role_name [, ...]
>>> | SYSID uid
>>>
>>> URL: https://www.postgresql.org/docs/devel/sql-createuser.html
>>>
>>> postgres=# \h create group
>>> Command: CREATE GROUP
>>> Description: define a new database role
>>> Syntax:
>>> CREATE GROUP name [ [ WITH ] option [ ... ] ]
>>>
>>> where option can be:
>>>
>>> SUPERUSER | NOSUPERUSER
>>> | CREATEDB | NOCREATEDB
>>> | CREATEROLE | NOCREATEROLE
>>> | INHERIT | NOINHERIT
>>> | LOGIN | NOLOGIN
>>> | REPLICATION | NOREPLICATION
>>> | BYPASSRLS | NOBYPASSRLS
>>> | CONNECTION LIMIT connlimit
>>> | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
>>> | VALID UNTIL 'timestamp'
>>> | IN ROLE role_name [, ...]
>>> | IN GROUP role_name [, ...]
>>> | ROLE role_name [, ...]
>>> | ADMIN role_name [, ...]
>>> | USER role_name [, ...]
>>> | SYSID uid
>>>
>>> URL: https://www.postgresql.org/docs/devel/sql-creategroup.html
>>>
>>> Since CREATE USER is documented as equivalent to CREATE ROLE WITH LOGIN, and
>>> CREATE GROUP is equivalent to CREATE ROLE, their help syntax should remain
>>> consistent with CREATE ROLE.
>>>
>>> I propose removing the deprecated IN GROUP and USER lines from the help text
>>> of both CREATE USER and CREATE GROUP. This would be a simple documentation
>>> cleanup that aligns the psql help with current reality and avoids confusing
>>> users with obsolete syntax.
>>>
>>> [1] https://www.postgresql.org/message-id/4c5f895e-3281-48f8-b943-9228b7da6471%40gmail.com
>>>
>>> --
>>> Regards,
>>> Japin Li
>>> ChengDu WenWu Information Technology Co., Ltd.
>>>
>>> <v1-0001-Remove-deprecated-role-options-for-CREATE-USER-GR.patch>
>>
>>
>> ```
>> This commit removes the deprecated IN GROUP and USER lines from the psql
>> help output for CREATE USER and CREATE GROUP.
>> ```
>>
>> The commit message claims to remove things from psql help output, but the change actually updated the SGML docs. Does the patch miss the change on psql?
>
> Hmm, psql's SQL help (\h) output is generated from SGML. See the generator
> scripts: src/bin/psql/create_*_help.pl.
>
Sorry, I made a typo, the script is src/bin/psql/create_help.pl.
--
Regards,
Japin Li
ChengDu WenWu Information Technology Co., Ltd.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Kirill Reshke | 2026-01-07 11:17:23 | Re: psql: Add tab completion for \copy pstdin and pstdout |
| Previous Message | Dilip Kumar | 2026-01-07 10:56:26 | Re: Proposal: Conflict log history table for Logical Replication |