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');