Rename some createuser options.
authorNathan Bossart
Mon, 22 May 2023 03:03:56 +0000 (20:03 -0700)
committerNathan Bossart
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
 
      
       
-      
+      
       
        
-        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  switches.
@@ -149,10 +149,10 @@ PostgreSQL documentation
 
      
       
-      
+      
       
        
-        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  switches.
        
@@ -222,10 +222,10 @@ PostgreSQL documentation
 
      
       
-      
+      
       
        
-        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  switches.
        
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');