Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vdcHZ-002o4M-01 for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Jan 2026 22:45:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vdcHX-00FuWD-1U for pgsql-hackers@arkaria.postgresql.org; Wed, 07 Jan 2026 22:45:36 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vdcHW-00FuW4-2x for pgsql-hackers@lists.postgresql.org; Wed, 07 Jan 2026 22:45:35 +0000 Received: from mail-dy1-x132c.google.com ([2607:f8b0:4864:20::132c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vdcHV-004mkq-1D for pgsql-hackers@lists.postgresql.org; Wed, 07 Jan 2026 22:45:34 +0000 Received: by mail-dy1-x132c.google.com with SMTP id 5a478bee46e88-2b053ec7d90so1778137eec.0 for ; Wed, 07 Jan 2026 14:45:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767825932; x=1768430732; darn=lists.postgresql.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=LE881GxwROc700PhCugj5tBIhm778KpeQ5RNnhxV0SY=; b=dI7sO2zql2mx45HxeM2ygMDjaBzJI5M8WYLWw4RzNO8I/jxRmScVXg0j8X//SWB+fz bOEQs3ZrLv2irNMrmD3uvdtgyiIrrRfsPwrQ9Gq9di5epKXvdnyB6mnO1yVDD/pG37Pn ShmOrizrK12YUs7jAX8XMbhy2jdRPpwPUH84ipDgudjTUEOA7rllSiAySDhxr1PdGd0v SnKLumXuaQr7IEVjbDRseP0LO+00wzFmUtBXSY4e5ZJ27aeit9LKSFCNtq7gvAjQPm5I NyQVX2ywxXEormOdTIeo34KJoGWYgJhMfqK58VqoI4F9u0tsggl0zD3mKnsxiK1bz68L DPTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767825932; x=1768430732; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=LE881GxwROc700PhCugj5tBIhm778KpeQ5RNnhxV0SY=; b=ZotWDkqnoL5seeqGOY9G93+WnAF14AzqV8QxiXUuLcyE4m3iZC9vCxu76shj91bc9g w+TOBrniDu1ceRx3R3zyxprJhoTkUBD701EnBOOxdi0inGMNYmuEnMrv84ajYqN4tAHM Or/WH6kVCYM8LfEbfxX0PYEgSPCsvpskvvDRlPGuXWYWhfhmMDLwyyLWeiLNWnMxtPmS EwLgS+VDHVYuJ7vFxHdj4lK7IZWo3B3s/mNJt3UPlaG91PK3051/xoWs3/gyyuRhknvP ki9hVmEXLHoDhpsa6npvr4k/bjty6lBjphGU89bOyBucFj6nxk3pp95Wan9609c0e+Lm QRLA== X-Gm-Message-State: AOJu0YyS5hmGRme/Vn9JFfNXRIcJGP/i5/1YsZ5HeCWQk9pQmWGOPmVt npOA04H3hcwZJcq8SQeOEymULf2GLNayNh792QgyB8Y/GSFN4G2S0BIE X-Gm-Gg: AY/fxX4TTdDyna+DSVF6BLn8kgweFWNLhENZqBbbEF3zP7tND8h1+cUf2ECYGlBvgWW wR/DE+TxKC2fByxhluGtGBRMiGoQT00wEwzFvazvrbZJBFAU9Z4UGAsZxpK6HaW6yFjwGmfVpbg grpOy7eNtMu5Wf65Egpu5FanHZRPMDzYsh5n/WALucVxJQjeHa5kHkYOnV/c4UBObq1tFK6gMzo njfWuBCqilqVmiKNXmOkx4SnsVW9BUMTPRIB/xJO6zzwMrPXnfHHQaRJpPr1t/RZEdzCLCYWL0D Adm4ZN08dAUeG+507uTGmTMZdjdIGv3SjeEOxzPv0W31GQ4Y6gQ+SL6nga5RJukQ7bZZkReRrlX 11rFHAb/P3BSBRWD817+E5xDTM7rHMClFiMvEybVqQzQZdN//5/pU2ZI0RsGgPFuQ79gN8hob2d Q9Ft8e5r+G53tfWxAOLQ7h/aIAQIaVJVg= X-Google-Smtp-Source: AGHT+IHPradNrMu2wwm8G/2RoyUUUFE3TBlcmrQ9sOTazhnTtxC30T/lQJWm4j6Ty69BX/05G3rrMA== X-Received: by 2002:a05:7300:8622:b0:2ae:5b71:d226 with SMTP id 5a478bee46e88-2b17d1fa677mr3353149eec.3.1767825931694; Wed, 07 Jan 2026 14:45:31 -0800 (PST) Received: from smtpclient.apple ([142.171.105.12]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b1706a6386sm7780021eec.14.2026.01.07.14.45.30 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 07 Jan 2026 14:45:31 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\)) Subject: Re: Remove deprecated role membership options from psql help for CREATE USER/GROUP From: Chao Li In-Reply-To: Date: Thu, 8 Jan 2026 06:45:01 +0800 Cc: Postgres hackers Content-Transfer-Encoding: quoted-printable Message-Id: <8DC009D5-3DED-44A1-A62D-37513076FC40@gmail.com> References: <5A39E825-95E5-40E9-98DC-22D89240B39F@gmail.com> To: Japin Li X-Mailer: Apple Mail (2.3826.700.81) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk > On Jan 7, 2026, at 19:06, Japin Li wrote: >=20 > On Wed, 07 Jan 2026 at 18:52, Japin Li wrote: >> On Wed, 07 Jan 2026 at 17:30, Chao Li wrote: >>>> On Jan 6, 2026, at 18:16, Japin Li wrote: >>>>=20 >>>>=20 >>>> Hi, >>>>=20 >>>> 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. >>>>=20 >>>> However, the psql help for the legacy synonyms CREATE USER and = CREATE GROUP >>>> still lists the deprecated options: >>>>=20 >>>> - IN GROUP role_name [, ...] >>>> - USER role_name [, ...] >>>>=20 >>>> postgres=3D# \h create role >>>> Command: CREATE ROLE >>>> Description: define a new database role >>>> Syntax: >>>> CREATE ROLE name [ [ WITH ] option [ ... ] ] >>>>=20 >>>> where option can be: >>>>=20 >>>> 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 >>>>=20 >>>> URL: https://www.postgresql.org/docs/devel/sql-createrole.html >>>>=20 >>>> postgres=3D# \h create user >>>> Command: CREATE USER >>>> Description: define a new database role >>>> Syntax: >>>> CREATE USER name [ [ WITH ] option [ ... ] ] >>>>=20 >>>> where option can be: >>>>=20 >>>> 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 >>>>=20 >>>> URL: https://www.postgresql.org/docs/devel/sql-createuser.html >>>>=20 >>>> postgres=3D# \h create group >>>> Command: CREATE GROUP >>>> Description: define a new database role >>>> Syntax: >>>> CREATE GROUP name [ [ WITH ] option [ ... ] ] >>>>=20 >>>> where option can be: >>>>=20 >>>> 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 >>>>=20 >>>> URL: https://www.postgresql.org/docs/devel/sql-creategroup.html >>>>=20 >>>> 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. >>>>=20 >>>> 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. >>>>=20 >>>> [1] = https://www.postgresql.org/message-id/4c5f895e-3281-48f8-b943-9228b7da6471= %40gmail.com >>>>=20 >>>> --=20 >>>> Regards, >>>> Japin Li >>>> ChengDu WenWu Information Technology Co., Ltd. >>>>=20 >>>> >>>=20 >>>=20 >>> ``` >>> This commit removes the deprecated IN GROUP and USER lines from the = psql >>> help output for CREATE USER and CREATE GROUP. >>> ``` >>>=20 >>> 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? >>=20 >> Hmm, psql's SQL help (\h) output is generated from SGML. See the = generator >> scripts: src/bin/psql/create_*_help.pl. >>=20 >=20 > Sorry, I made a typo, the script is src/bin/psql/create_help.pl. >=20 > --=20 > Regards, > Japin Li > ChengDu WenWu Information Technology Co., Ltd. Good to know. I wasn=E2=80=99t 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/