Rename some createuser options.
authorNathan Bossart <[email protected]>
Mon, 22 May 2023 03:03:56 +0000 (20:03 -0700)
committerNathan Bossart <[email protected]>
Mon, 22 May 2023 03:06:38 +0000 (20:06 -0700)
This change renames --admin to --with-admin, --role to --member-of,
and --member to --with-member.  Many people found the previous
names to be confusing.  The --admin and --member options are new in
v16, but --role has been there for a while, so that one has been
kept (but left undocumented) for backward compatibility.

Suggested-by: Peter Eisentraut
Reviewed-by: Tom Lane, Michael Paquier
Discussion: https://postgr.es/m/ZFvVZvQDliIWmOwg%40momjian.us

doc/src/sgml/ref/createuser.sgml
src/bin/scripts/createuser.c
src/bin/scripts/t/040_createuser.pl

index 58ed1116420f7792898c5ee68e5561ef7a165e0f..ba7ed1f853157542fc2827bea6f6e80780bd1c5d 100644 (file)
@@ -82,10 +82,10 @@ PostgreSQL documentation
 
      <varlistentry>
       <term><option>-a <replaceable class="parameter">role</replaceable></option></term>
-      <term><option>--admin=<replaceable class="parameter">role</replaceable></option></term>
+      <term><option>--with-admin=<replaceable class="parameter">role</replaceable></option></term>
       <listitem>
        <para>
-        Indicates an existing role that will be automatically added as a member of the new
+        Specifies an existing role that will be automatically added as a member of the new
         role with admin option, giving it the right to grant membership in the
         new role to others.  Multiple existing roles can be specified by
         writing multiple <option>-a</option> switches.
@@ -149,10 +149,10 @@ PostgreSQL documentation
 
      <varlistentry>
       <term><option>-g <replaceable class="parameter">role</replaceable></option></term>
-      <term><option>--role=<replaceable class="parameter">role</replaceable></option></term>
+      <term><option>--member-of=<replaceable class="parameter">role</replaceable></option></term>
       <listitem>
        <para>
-        Indicates the new role should be automatically added as a member
+        Specifies the new role should be automatically added as a member
         of the specified existing role. Multiple existing roles can be
         specified by writing multiple <option>-g</option> switches.
        </para>
@@ -222,10 +222,10 @@ PostgreSQL documentation
 
      <varlistentry>
       <term><option>-m <replaceable class="parameter">role</replaceable></option></term>
-      <term><option>--member=<replaceable class="parameter">role</replaceable></option></term>
+      <term><option>--with-member=<replaceable class="parameter">role</replaceable></option></term>
       <listitem>
        <para>
-        Indicates the specified existing role should be automatically
+        Specifies an existing role that will be automatically
         added as a member of the new role. Multiple existing roles can
         be specified by writing multiple <option>-m</option> switches.
        </para>
index 0c7f454be502f1168eb0b85d2ae5754cf9d13e20..2d5e2452f782ce8bdd0e5a124f2e352fcf2fd4de 100644 (file)
@@ -28,19 +28,21 @@ int
 main(int argc, char *argv[])
 {
        static struct option long_options[] = {
-               {"admin", required_argument, NULL, 'a'},
+               {"with-admin", required_argument, NULL, 'a'},
                {"connection-limit", required_argument, NULL, 'c'},
                {"createdb", no_argument, NULL, 'd'},
                {"no-createdb", no_argument, NULL, 'D'},
                {"echo", no_argument, NULL, 'e'},
                {"encrypted", no_argument, NULL, 'E'},
-               {"role", required_argument, NULL, 'g'},
+               {"role", required_argument, NULL, 'g'}, /* kept for backward
+                                                                                                * compatibility */
+               {"member-of", required_argument, NULL, 'g'},
                {"host", required_argument, NULL, 'h'},
                {"inherit", no_argument, NULL, 'i'},
                {"no-inherit", no_argument, NULL, 'I'},
                {"login", no_argument, NULL, 'l'},
                {"no-login", no_argument, NULL, 'L'},
-               {"member", required_argument, NULL, 'm'},
+               {"with-member", required_argument, NULL, 'm'},
                {"port", required_argument, NULL, 'p'},
                {"pwprompt", no_argument, NULL, 'P'},
                {"createrole", no_argument, NULL, 'r'},
@@ -414,19 +416,19 @@ help(const char *progname)
        printf(_("Usage:\n"));
        printf(_("  %s [OPTION]... [ROLENAME]\n"), progname);
        printf(_("\nOptions:\n"));
-       printf(_("  -a, --admin=ROLE          this role will be a member of new role with admin\n"
+       printf(_("  -a, --with-admin=ROLE     ROLE will be a member of new role with admin\n"
                         "                            option\n"));
        printf(_("  -c, --connection-limit=N  connection limit for role (default: no limit)\n"));
        printf(_("  -d, --createdb            role can create new databases\n"));
        printf(_("  -D, --no-createdb         role cannot create databases (default)\n"));
        printf(_("  -e, --echo                show the commands being sent to the server\n"));
-       printf(_("  -g, --role=ROLE           new role will be a member of this role\n"));
+       printf(_("  -g, --member-of=ROLE      new role will be a member of ROLE\n"));
        printf(_("  -i, --inherit             role inherits privileges of roles it is a\n"
                         "                            member of (default)\n"));
        printf(_("  -I, --no-inherit          role does not inherit privileges\n"));
        printf(_("  -l, --login               role can login (default)\n"));
        printf(_("  -L, --no-login            role cannot login\n"));
-       printf(_("  -m, --member=ROLE         this role will be a member of new role\n"));
+       printf(_("  -m, --with-member=ROLE    ROLE will be a member of new role\n"));
        printf(_("  -P, --pwprompt            assign a password to new role\n"));
        printf(_("  -r, --createrole          role can create new roles\n"));
        printf(_("  -R, --no-createrole       role cannot create roles (default)\n"));
index da99d0ccb92ce708a7ce95a6afca6184cfd6e42e..40452fcae3bf1c151f8d58e8e641a77f53922171 100644 (file)
@@ -60,6 +60,22 @@ $node->issues_sql_like(
        [ 'createuser', '--no-bypassrls', 'regress_user8' ],
        qr/statement: CREATE ROLE regress_user8 NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN NOREPLICATION NOBYPASSRLS;/,
        'create a role without BYPASSRLS');
+$node->issues_sql_like(
+       [ 'createuser', '--with-admin', 'regress_user1', 'regress_user9' ],
+       qr/statement: CREATE ROLE regress_user9 NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN NOREPLICATION NOBYPASSRLS ADMIN regress_user1;/,
+       '--with-admin');
+$node->issues_sql_like(
+       [ 'createuser', '--with-member', 'regress_user1', 'regress_user10' ],
+       qr/statement: CREATE ROLE regress_user10 NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN NOREPLICATION NOBYPASSRLS ROLE regress_user1;/,
+       '--with-member');
+$node->issues_sql_like(
+       [ 'createuser', '--role', 'regress_user1', 'regress_user11' ],
+       qr/statement: CREATE ROLE regress_user11 NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN NOREPLICATION NOBYPASSRLS IN ROLE regress_user1;/,
+       '--role (for backward compatibility)');
+$node->issues_sql_like(
+       [ 'createuser', '--member-of', 'regress_user1', 'regress_user12' ],
+       qr/statement: CREATE ROLE regress_user12 NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN NOREPLICATION NOBYPASSRLS IN ROLE regress_user1;/,
+       '--member-of');
 
 $node->command_fails([ 'createuser', 'regress_user1' ],
        'fails if role already exists');