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.
