public inbox for [email protected]  
help / color / mirror / Atom feed
From: Chao Li <[email protected]>
To: Japin Li <[email protected]>
Cc: Postgres hackers <[email protected]>
Subject: Re: Remove deprecated role membership options from psql help for CREATE USER/GROUP
Date: Thu, 8 Jan 2026 06:45:01 +0800
Message-ID: <[email protected]> (raw)
In-Reply-To: <MEAPR01MB30316011F7E46FEAB98013C7B684A@MEAPR01MB3031.ausprd01.prod.outlook.com>
References: <MEAPR01MB3031C30E72EF16CFC08C8565B687A@MEAPR01MB3031.ausprd01.prod.outlook.com>
	<[email protected]>
	<MEAPR01MB303180DF7D064EC4050537ABB684A@MEAPR01MB3031.ausprd01.prod.outlook.com>
	<MEAPR01MB30316011F7E46FEAB98013C7B684A@MEAPR01MB3031.ausprd01.prod.outlook.com>



> On Jan 7, 2026, at 19:06, Japin Li <[email protected]> wrote:
> 
> On Wed, 07 Jan 2026 at 18:52, Japin Li <[email protected]> wrote:
>> 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.
>> 
> 
> Sorry, I made a typo, the script is src/bin/psql/create_help.pl.
> 
> -- 
> Regards,
> Japin Li
> ChengDu WenWu Information Technology Co., Ltd.

Good to know. I wasn’t aware of that. Maybe it deserves to mention that in the commit message.

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










view thread (5+ messages)

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected]
  Subject: Re: Remove deprecated role membership options from psql help for CREATE USER/GROUP
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox