Skip to content

Commit d371beb

Browse files
committed
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.
1 parent bde39ee commit d371beb

File tree

10 files changed

+11
-41
lines changed

10 files changed

+11
-41
lines changed

doc/src/sgml/ref/alter_role.sgml

-3
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ ALTER ROLE <replaceable class="PARAMETER">role_specification</replaceable> [ WIT
2828
SUPERUSER | NOSUPERUSER
2929
| CREATEDB | NOCREATEDB
3030
| CREATEROLE | NOCREATEROLE
31-
| CREATEUSER | NOCREATEUSER
3231
| INHERIT | NOINHERIT
3332
| LOGIN | NOLOGIN
3433
| REPLICATION | NOREPLICATION
@@ -160,8 +159,6 @@ ALTER ROLE { <replaceable class="PARAMETER">role_specification</replaceable> | A
160159
<term><literal>NOCREATEDB</></term>
161160
<term><literal>CREATEROLE</literal></term>
162161
<term><literal>NOCREATEROLE</literal></term>
163-
<term><literal>CREATEUSER</literal></term>
164-
<term><literal>NOCREATEUSER</literal></term>
165162
<term><literal>INHERIT</literal></term>
166163
<term><literal>NOINHERIT</literal></term>
167164
<term><literal>LOGIN</literal></term>

doc/src/sgml/ref/alter_user.sgml

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ ALTER USER <replaceable class="PARAMETER">role_specification</replaceable> [ WIT
2828
SUPERUSER | NOSUPERUSER
2929
| CREATEDB | NOCREATEDB
3030
| CREATEROLE | NOCREATEROLE
31-
| CREATEUSER | NOCREATEUSER
3231
| INHERIT | NOINHERIT
3332
| LOGIN | NOLOGIN
3433
| REPLICATION | NOREPLICATION

doc/src/sgml/ref/create_group.sgml

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ CREATE GROUP <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <repla
2828
SUPERUSER | NOSUPERUSER
2929
| CREATEDB | NOCREATEDB
3030
| CREATEROLE | NOCREATEROLE
31-
| CREATEUSER | NOCREATEUSER
3231
| INHERIT | NOINHERIT
3332
| LOGIN | NOLOGIN
3433
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD '<replaceable class="PARAMETER">password</replaceable>'

doc/src/sgml/ref/create_role.sgml

-14
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ CREATE ROLE <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <replac
2828
SUPERUSER | NOSUPERUSER
2929
| CREATEDB | NOCREATEDB
3030
| CREATEROLE | NOCREATEROLE
31-
| CREATEUSER | NOCREATEUSER
3231
| INHERIT | NOINHERIT
3332
| LOGIN | NOLOGIN
3433
| REPLICATION | NOREPLICATION
@@ -124,19 +123,6 @@ CREATE ROLE <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <replac
124123
</listitem>
125124
</varlistentry>
126125

127-
<varlistentry>
128-
<term><literal>CREATEUSER</literal></term>
129-
<term><literal>NOCREATEUSER</literal></term>
130-
<listitem>
131-
<para>
132-
These clauses are an obsolete, but still accepted, spelling of
133-
<literal>SUPERUSER</literal> and <literal>NOSUPERUSER</literal>.
134-
Note that they are <emphasis>not</> equivalent to
135-
<literal>CREATEROLE</literal> as one might naively expect!
136-
</para>
137-
</listitem>
138-
</varlistentry>
139-
140126
<varlistentry>
141127
<term><literal>INHERIT</literal></term>
142128
<term><literal>NOINHERIT</literal></term>

doc/src/sgml/ref/create_user.sgml

-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ CREATE USER <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <replac
2828
SUPERUSER | NOSUPERUSER
2929
| CREATEDB | NOCREATEDB
3030
| CREATEROLE | NOCREATEROLE
31-
| CREATEUSER | NOCREATEUSER
3231
| INHERIT | NOINHERIT
3332
| LOGIN | NOLOGIN
3433
| REPLICATION | NOREPLICATION

src/backend/parser/gram.y

-10
Original file line numberDiff line numberDiff line change
@@ -966,16 +966,6 @@ AlterOptRoleElem:
966966
$$ = makeDefElem("superuser", (Node *)makeInteger(TRUE));
967967
else if (strcmp($1, "nosuperuser") == 0)
968968
$$ = makeDefElem("superuser", (Node *)makeInteger(FALSE));
969-
else if (strcmp($1, "createuser") == 0)
970-
{
971-
/* For backwards compatibility, synonym for SUPERUSER */
972-
$$ = makeDefElem("superuser", (Node *)makeInteger(TRUE));
973-
}
974-
else if (strcmp($1, "nocreateuser") == 0)
975-
{
976-
/* For backwards compatibility, synonym for SUPERUSER */
977-
$$ = makeDefElem("superuser", (Node *)makeInteger(FALSE));
978-
}
979969
else if (strcmp($1, "createrole") == 0)
980970
$$ = makeDefElem("createrole", (Node *)makeInteger(TRUE));
981971
else if (strcmp($1, "nocreaterole") == 0)

src/backend/utils/mb/conversion_procs/regress_prolog

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
--
22
-- create user defined conversion
33
--
4-
CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEUSER;
4+
CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEROLE;
55
SET SESSION AUTHORIZATION conversion_test_user;
66
CREATE CONVERSION myconv FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8;
77
--

src/bin/psql/tab-complete.c

+8-8
Original file line numberDiff line numberDiff line change
@@ -1264,8 +1264,8 @@ psql_completion(const char *text, int start, int end)
12641264
{
12651265
static const char *const list_ALTERUSER[] =
12661266
{"BYPASSRLS", "CONNECTION LIMIT", "CREATEDB", "CREATEROLE",
1267-
"CREATEUSER", "ENCRYPTED", "INHERIT", "LOGIN", "NOBYPASSRLS",
1268-
"NOCREATEDB", "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT",
1267+
"ENCRYPTED", "INHERIT", "LOGIN", "NOBYPASSRLS",
1268+
"NOCREATEDB", "NOCREATEROLE", "NOINHERIT",
12691269
"NOLOGIN", "NOREPLICATION", "NOSUPERUSER", "PASSWORD", "RENAME TO",
12701270
"REPLICATION", "RESET", "SET", "SUPERUSER", "UNENCRYPTED",
12711271
"VALID UNTIL", "WITH", NULL};
@@ -1282,8 +1282,8 @@ psql_completion(const char *text, int start, int end)
12821282
/* Similar to the above, but don't complete "WITH" again. */
12831283
static const char *const list_ALTERUSER_WITH[] =
12841284
{"BYPASSRLS", "CONNECTION LIMIT", "CREATEDB", "CREATEROLE",
1285-
"CREATEUSER", "ENCRYPTED", "INHERIT", "LOGIN", "NOBYPASSRLS",
1286-
"NOCREATEDB", "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT",
1285+
"ENCRYPTED", "INHERIT", "LOGIN", "NOBYPASSRLS",
1286+
"NOCREATEDB", "NOCREATEROLE", "NOINHERIT",
12871287
"NOLOGIN", "NOREPLICATION", "NOSUPERUSER", "PASSWORD", "RENAME TO",
12881288
"REPLICATION", "RESET", "SET", "SUPERUSER", "UNENCRYPTED",
12891289
"VALID UNTIL", NULL};
@@ -2671,8 +2671,8 @@ psql_completion(const char *text, int start, int end)
26712671
{
26722672
static const char *const list_CREATEROLE[] =
26732673
{"ADMIN", "BYPASSRLS", "CONNECTION LIMIT", "CREATEDB", "CREATEROLE",
2674-
"CREATEUSER", "ENCRYPTED", "IN", "INHERIT", "LOGIN", "NOBYPASSRLS",
2675-
"NOCREATEDB", "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT",
2674+
"ENCRYPTED", "IN", "INHERIT", "LOGIN", "NOBYPASSRLS",
2675+
"NOCREATEDB", "NOCREATEROLE", "NOINHERIT",
26762676
"NOLOGIN", "NOREPLICATION", "NOSUPERUSER", "PASSWORD",
26772677
"REPLICATION", "ROLE", "SUPERUSER", "SYSID", "UNENCRYPTED",
26782678
"VALID UNTIL", "WITH", NULL};
@@ -2690,8 +2690,8 @@ psql_completion(const char *text, int start, int end)
26902690
/* Similar to the above, but don't complete "WITH" again. */
26912691
static const char *const list_CREATEROLE_WITH[] =
26922692
{"ADMIN", "BYPASSRLS", "CONNECTION LIMIT", "CREATEDB", "CREATEROLE",
2693-
"CREATEUSER", "ENCRYPTED", "IN", "INHERIT", "LOGIN", "NOBYPASSRLS",
2694-
"NOCREATEDB", "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT",
2693+
"ENCRYPTED", "IN", "INHERIT", "LOGIN", "NOBYPASSRLS",
2694+
"NOCREATEDB", "NOCREATEROLE", "NOINHERIT",
26952695
"NOLOGIN", "NOREPLICATION", "NOSUPERUSER", "PASSWORD",
26962696
"REPLICATION", "ROLE", "SUPERUSER", "SYSID", "UNENCRYPTED",
26972697
"VALID UNTIL", NULL};

src/test/regress/expected/conversion.out

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ SET bytea_output TO escape;
33
--
44
-- create user defined conversion
55
--
6-
CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEUSER;
6+
CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEROLE;
77
SET SESSION AUTHORIZATION conversion_test_user;
88
CREATE CONVERSION myconv FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8;
99
--

src/test/regress/sql/conversion.sql

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ SET bytea_output TO escape;
44
--
55
-- create user defined conversion
66
--
7-
CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEUSER;
7+
CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEROLE;
88
SET SESSION AUTHORIZATION conversion_test_user;
99
CREATE CONVERSION myconv FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8;
1010
--

0 commit comments

Comments
 (0)