diff options
author | Tom Lane | 2015-10-22 16:33:51 +0000 |
---|---|---|
committer | Tom Lane | 2015-10-22 16:34:03 +0000 |
commit | d371bebd3d16949171282c8252dfd6f82d2e7378 (patch) | |
tree | 2c91b823d26ca11e7c89d86114a1c3c80f8527b2 | |
parent | bde39eed0cafb82bc94c40e95d96b5cf47b6f719 (diff) |
Remove redundant CREATEUSER/NOCREATEUSER options in CREATE ROLE et al.
Once upon a time we did not have a separate CREATEROLE privilege, and
CREATEUSER effectively meant SUPERUSER. When we invented CREATEROLE
(in 8.1) we also added SUPERUSER so as to have a less confusing keyword
for this role property. However, we left CREATEUSER in place as a
deprecated synonym for SUPERUSER, because of backwards-compatibility
concerns. It's still there and is still confusing people, as for example
in bug #13694 from Justin Catterson. 9.6 will be ten years or so later,
which surely ought to be long enough to end the deprecation and just
remove these old keywords. Hence, do so.
-rw-r--r-- | doc/src/sgml/ref/alter_role.sgml | 3 | ||||
-rw-r--r-- | doc/src/sgml/ref/alter_user.sgml | 1 | ||||
-rw-r--r-- | doc/src/sgml/ref/create_group.sgml | 1 | ||||
-rw-r--r-- | doc/src/sgml/ref/create_role.sgml | 14 | ||||
-rw-r--r-- | doc/src/sgml/ref/create_user.sgml | 1 | ||||
-rw-r--r-- | src/backend/parser/gram.y | 10 | ||||
-rw-r--r-- | src/backend/utils/mb/conversion_procs/regress_prolog | 2 | ||||
-rw-r--r-- | src/bin/psql/tab-complete.c | 16 | ||||
-rw-r--r-- | src/test/regress/expected/conversion.out | 2 | ||||
-rw-r--r-- | src/test/regress/sql/conversion.sql | 2 |
10 files changed, 11 insertions, 41 deletions
diff --git a/doc/src/sgml/ref/alter_role.sgml b/doc/src/sgml/ref/alter_role.sgml index 7638817b83..da36ad9696 100644 --- a/doc/src/sgml/ref/alter_role.sgml +++ b/doc/src/sgml/ref/alter_role.sgml @@ -28,7 +28,6 @@ ALTER ROLE <replaceable class="PARAMETER">role_specification</replaceable> [ WIT SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE - | CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION @@ -160,8 +159,6 @@ ALTER ROLE { <replaceable class="PARAMETER">role_specification</replaceable> | A <term><literal>NOCREATEDB</></term> <term><literal>CREATEROLE</literal></term> <term><literal>NOCREATEROLE</literal></term> - <term><literal>CREATEUSER</literal></term> - <term><literal>NOCREATEUSER</literal></term> <term><literal>INHERIT</literal></term> <term><literal>NOINHERIT</literal></term> <term><literal>LOGIN</literal></term> diff --git a/doc/src/sgml/ref/alter_user.sgml b/doc/src/sgml/ref/alter_user.sgml index 0ffaa16da2..84a0c52191 100644 --- a/doc/src/sgml/ref/alter_user.sgml +++ b/doc/src/sgml/ref/alter_user.sgml @@ -28,7 +28,6 @@ ALTER USER <replaceable class="PARAMETER">role_specification</replaceable> [ WIT SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE - | CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION diff --git a/doc/src/sgml/ref/create_group.sgml b/doc/src/sgml/ref/create_group.sgml index 981ce51e5f..1d5cc9b596 100644 --- a/doc/src/sgml/ref/create_group.sgml +++ b/doc/src/sgml/ref/create_group.sgml @@ -28,7 +28,6 @@ CREATE GROUP <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <repla SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE - | CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | [ ENCRYPTED | UNENCRYPTED ] PASSWORD '<replaceable class="PARAMETER">password</replaceable>' diff --git a/doc/src/sgml/ref/create_role.sgml b/doc/src/sgml/ref/create_role.sgml index 240c21ce85..38cd4c8369 100644 --- a/doc/src/sgml/ref/create_role.sgml +++ b/doc/src/sgml/ref/create_role.sgml @@ -28,7 +28,6 @@ CREATE ROLE <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <replac SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE - | CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION @@ -125,19 +124,6 @@ CREATE ROLE <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <replac </varlistentry> <varlistentry> - <term><literal>CREATEUSER</literal></term> - <term><literal>NOCREATEUSER</literal></term> - <listitem> - <para> - These clauses are an obsolete, but still accepted, spelling of - <literal>SUPERUSER</literal> and <literal>NOSUPERUSER</literal>. - Note that they are <emphasis>not</> equivalent to - <literal>CREATEROLE</literal> as one might naively expect! - </para> - </listitem> - </varlistentry> - - <varlistentry> <term><literal>INHERIT</literal></term> <term><literal>NOINHERIT</literal></term> <listitem> diff --git a/doc/src/sgml/ref/create_user.sgml b/doc/src/sgml/ref/create_user.sgml index 065999c85a..6c690b36df 100644 --- a/doc/src/sgml/ref/create_user.sgml +++ b/doc/src/sgml/ref/create_user.sgml @@ -28,7 +28,6 @@ CREATE USER <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <replac SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE - | CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 8bd511952c..fba91d53ac 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -966,16 +966,6 @@ AlterOptRoleElem: $$ = makeDefElem("superuser", (Node *)makeInteger(TRUE)); else if (strcmp($1, "nosuperuser") == 0) $$ = makeDefElem("superuser", (Node *)makeInteger(FALSE)); - else if (strcmp($1, "createuser") == 0) - { - /* For backwards compatibility, synonym for SUPERUSER */ - $$ = makeDefElem("superuser", (Node *)makeInteger(TRUE)); - } - else if (strcmp($1, "nocreateuser") == 0) - { - /* For backwards compatibility, synonym for SUPERUSER */ - $$ = makeDefElem("superuser", (Node *)makeInteger(FALSE)); - } else if (strcmp($1, "createrole") == 0) $$ = makeDefElem("createrole", (Node *)makeInteger(TRUE)); else if (strcmp($1, "nocreaterole") == 0) diff --git a/src/backend/utils/mb/conversion_procs/regress_prolog b/src/backend/utils/mb/conversion_procs/regress_prolog index f5c71790cf..f35241a2d0 100644 --- a/src/backend/utils/mb/conversion_procs/regress_prolog +++ b/src/backend/utils/mb/conversion_procs/regress_prolog @@ -1,7 +1,7 @@ -- -- create user defined conversion -- -CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEUSER; +CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEROLE; SET SESSION AUTHORIZATION conversion_test_user; CREATE CONVERSION myconv FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8; -- diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 4eb5058416..0e8d3951a2 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -1264,8 +1264,8 @@ psql_completion(const char *text, int start, int end) { static const char *const list_ALTERUSER[] = {"BYPASSRLS", "CONNECTION LIMIT", "CREATEDB", "CREATEROLE", - "CREATEUSER", "ENCRYPTED", "INHERIT", "LOGIN", "NOBYPASSRLS", - "NOCREATEDB", "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT", + "ENCRYPTED", "INHERIT", "LOGIN", "NOBYPASSRLS", + "NOCREATEDB", "NOCREATEROLE", "NOINHERIT", "NOLOGIN", "NOREPLICATION", "NOSUPERUSER", "PASSWORD", "RENAME TO", "REPLICATION", "RESET", "SET", "SUPERUSER", "UNENCRYPTED", "VALID UNTIL", "WITH", NULL}; @@ -1282,8 +1282,8 @@ psql_completion(const char *text, int start, int end) /* Similar to the above, but don't complete "WITH" again. */ static const char *const list_ALTERUSER_WITH[] = {"BYPASSRLS", "CONNECTION LIMIT", "CREATEDB", "CREATEROLE", - "CREATEUSER", "ENCRYPTED", "INHERIT", "LOGIN", "NOBYPASSRLS", - "NOCREATEDB", "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT", + "ENCRYPTED", "INHERIT", "LOGIN", "NOBYPASSRLS", + "NOCREATEDB", "NOCREATEROLE", "NOINHERIT", "NOLOGIN", "NOREPLICATION", "NOSUPERUSER", "PASSWORD", "RENAME TO", "REPLICATION", "RESET", "SET", "SUPERUSER", "UNENCRYPTED", "VALID UNTIL", NULL}; @@ -2671,8 +2671,8 @@ psql_completion(const char *text, int start, int end) { static const char *const list_CREATEROLE[] = {"ADMIN", "BYPASSRLS", "CONNECTION LIMIT", "CREATEDB", "CREATEROLE", - "CREATEUSER", "ENCRYPTED", "IN", "INHERIT", "LOGIN", "NOBYPASSRLS", - "NOCREATEDB", "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT", + "ENCRYPTED", "IN", "INHERIT", "LOGIN", "NOBYPASSRLS", + "NOCREATEDB", "NOCREATEROLE", "NOINHERIT", "NOLOGIN", "NOREPLICATION", "NOSUPERUSER", "PASSWORD", "REPLICATION", "ROLE", "SUPERUSER", "SYSID", "UNENCRYPTED", "VALID UNTIL", "WITH", NULL}; @@ -2690,8 +2690,8 @@ psql_completion(const char *text, int start, int end) /* Similar to the above, but don't complete "WITH" again. */ static const char *const list_CREATEROLE_WITH[] = {"ADMIN", "BYPASSRLS", "CONNECTION LIMIT", "CREATEDB", "CREATEROLE", - "CREATEUSER", "ENCRYPTED", "IN", "INHERIT", "LOGIN", "NOBYPASSRLS", - "NOCREATEDB", "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT", + "ENCRYPTED", "IN", "INHERIT", "LOGIN", "NOBYPASSRLS", + "NOCREATEDB", "NOCREATEROLE", "NOINHERIT", "NOLOGIN", "NOREPLICATION", "NOSUPERUSER", "PASSWORD", "REPLICATION", "ROLE", "SUPERUSER", "SYSID", "UNENCRYPTED", "VALID UNTIL", NULL}; diff --git a/src/test/regress/expected/conversion.out b/src/test/regress/expected/conversion.out index 13f1cf3447..96ea3b9e19 100644 --- a/src/test/regress/expected/conversion.out +++ b/src/test/regress/expected/conversion.out @@ -3,7 +3,7 @@ SET bytea_output TO escape; -- -- create user defined conversion -- -CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEUSER; +CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEROLE; SET SESSION AUTHORIZATION conversion_test_user; CREATE CONVERSION myconv FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8; -- diff --git a/src/test/regress/sql/conversion.sql b/src/test/regress/sql/conversion.sql index e27f06f5c7..fb184453c2 100644 --- a/src/test/regress/sql/conversion.sql +++ b/src/test/regress/sql/conversion.sql @@ -4,7 +4,7 @@ SET bytea_output TO escape; -- -- create user defined conversion -- -CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEUSER; +CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEROLE; SET SESSION AUTHORIZATION conversion_test_user; CREATE CONVERSION myconv FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8; -- |