On Wed, 07 Jan 2026 at 17:30, Chao Li <[email protected]> wrote:
>> On Jan 6, 2026, at 18:16, Japin Li <[email protected]> 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.

-- 
Regards,
Japin Li
ChengDu WenWu Information Technology Co., Ltd.


Reply via email to