<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.
<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>
<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>
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'},
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"));
[ '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');