On 2020-06-24 23:08, Alvaro Herrera wrote:
On 2020-Jun-24, Peter Eisentraut wrote:
I was checking some loose ends in SQL conformance, when I noticed: We
support GRANT role ... GRANTED BY CURRENT_USER, but we don't support
CURRENT_ROLE in that place, even though in PostgreSQL they are equivalent.
Here is a trivial patch to add that.
Hmm, since this adds to RoleSpec, this change makes every place that
uses that production also take CURRENT_ROLE, so we'd need to document in
all those places. For example, alter_role.sgml, create_schema.sgml,
etc.
Good point. Here is an updated patch that updates all the documentation
places where CURRENT_USER is mentioned.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From 3dea85cf0391828e02f901ab808dad31422ee30b Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Wed, 24 Jun 2020 08:21:48 +0200
Subject: [PATCH v2] Allow CURRENT_ROLE where CURRENT_USER is accepted
In the particular case of GRANTED BY, this is specified in the SQL
standard. Since in PostgreSQL, CURRENT_ROLE is equivalent to
CURRENT_USER, and CURRENT_USER is already supported here, adding
CURRENT_ROLE is trivial. The other cases are PostgreSQL extensions,
but for the same reason it also makes sense there.
---
doc/src/sgml/ref/alter_aggregate.sgml | 2 +-
doc/src/sgml/ref/alter_collation.sgml | 2 +-
doc/src/sgml/ref/alter_conversion.sgml | 2 +-
doc/src/sgml/ref/alter_database.sgml | 2 +-
doc/src/sgml/ref/alter_domain.sgml | 2 +-
doc/src/sgml/ref/alter_event_trigger.sgml | 2 +-
doc/src/sgml/ref/alter_foreign_data_wrapper.sgml | 2 +-
doc/src/sgml/ref/alter_foreign_table.sgml | 2 +-
doc/src/sgml/ref/alter_function.sgml | 2 +-
doc/src/sgml/ref/alter_group.sgml | 1 +
doc/src/sgml/ref/alter_language.sgml | 2 +-
doc/src/sgml/ref/alter_large_object.sgml | 2 +-
doc/src/sgml/ref/alter_materialized_view.sgml | 2 +-
doc/src/sgml/ref/alter_opclass.sgml | 2 +-
doc/src/sgml/ref/alter_operator.sgml | 2 +-
doc/src/sgml/ref/alter_opfamily.sgml | 2 +-
doc/src/sgml/ref/alter_policy.sgml | 2 +-
doc/src/sgml/ref/alter_procedure.sgml | 2 +-
doc/src/sgml/ref/alter_publication.sgml | 2 +-
doc/src/sgml/ref/alter_role.sgml | 2 ++
doc/src/sgml/ref/alter_routine.sgml | 2 +-
doc/src/sgml/ref/alter_schema.sgml | 2 +-
doc/src/sgml/ref/alter_sequence.sgml | 2 +-
doc/src/sgml/ref/alter_server.sgml | 2 +-
doc/src/sgml/ref/alter_statistics.sgml | 2 +-
doc/src/sgml/ref/alter_subscription.sgml | 2 +-
doc/src/sgml/ref/alter_table.sgml | 2 +-
doc/src/sgml/ref/alter_tablespace.sgml | 2 +-
doc/src/sgml/ref/alter_tsconfig.sgml | 2 +-
doc/src/sgml/ref/alter_tsdictionary.sgml | 2 +-
doc/src/sgml/ref/alter_type.sgml | 2 +-
doc/src/sgml/ref/alter_user.sgml | 1 +
doc/src/sgml/ref/alter_user_mapping.sgml | 4 ++--
doc/src/sgml/ref/alter_view.sgml | 2 +-
doc/src/sgml/ref/create_policy.sgml | 2 +-
doc/src/sgml/ref/create_schema.sgml | 1 +
doc/src/sgml/ref/create_tablespace.sgml | 2 +-
doc/src/sgml/ref/create_user_mapping.sgml | 4 ++--
doc/src/sgml/ref/drop_owned.sgml | 2 +-
doc/src/sgml/ref/drop_user_mapping.sgml | 4 ++--
doc/src/sgml/ref/grant.sgml | 1 +
doc/src/sgml/ref/reassign_owned.sgml | 4 ++--
doc/src/sgml/ref/revoke.sgml | 1 +
src/backend/parser/gram.y | 4 ++++
44 files changed, 52 insertions(+), 41 deletions(-)
diff --git a/doc/src/sgml/ref/alter_aggregate.sgml
b/doc/src/sgml/ref/alter_aggregate.sgml
index 2ad3e0440b..95934a100f 100644
--- a/doc/src/sgml/ref/alter_aggregate.sgml
+++ b/doc/src/sgml/ref/alter_aggregate.sgml
@@ -23,7 +23,7 @@
<synopsis>
ALTER AGGREGATE <replaceable>name</replaceable> (
<replaceable>aggregate_signature</replaceable> ) RENAME TO
<replaceable>new_name</replaceable>
ALTER AGGREGATE <replaceable>name</replaceable> (
<replaceable>aggregate_signature</replaceable> )
- OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_USER
| SESSION_USER }
+ OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_ROLE
| CURRENT_USER | SESSION_USER }
ALTER AGGREGATE <replaceable>name</replaceable> (
<replaceable>aggregate_signature</replaceable> ) SET SCHEMA
<replaceable>new_schema</replaceable>
<phrase>where <replaceable>aggregate_signature</replaceable> is:</phrase>
diff --git a/doc/src/sgml/ref/alter_collation.sgml
b/doc/src/sgml/ref/alter_collation.sgml
index bee6f0dd3c..af9ff2867b 100644
--- a/doc/src/sgml/ref/alter_collation.sgml
+++ b/doc/src/sgml/ref/alter_collation.sgml
@@ -24,7 +24,7 @@
ALTER COLLATION <replaceable>name</replaceable> REFRESH VERSION
ALTER COLLATION <replaceable>name</replaceable> RENAME TO
<replaceable>new_name</replaceable>
-ALTER COLLATION <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
+ALTER COLLATION <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER |
SESSION_USER }
ALTER COLLATION <replaceable>name</replaceable> SET SCHEMA
<replaceable>new_schema</replaceable>
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_conversion.sgml
b/doc/src/sgml/ref/alter_conversion.sgml
index c42bd8b3e4..a128f20f3e 100644
--- a/doc/src/sgml/ref/alter_conversion.sgml
+++ b/doc/src/sgml/ref/alter_conversion.sgml
@@ -22,7 +22,7 @@
<refsynopsisdiv>
<synopsis>
ALTER CONVERSION <replaceable>name</replaceable> RENAME TO
<replaceable>new_name</replaceable>
-ALTER CONVERSION <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
+ALTER CONVERSION <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER |
SESSION_USER }
ALTER CONVERSION <replaceable>name</replaceable> SET SCHEMA
<replaceable>new_schema</replaceable>
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_database.sgml
b/doc/src/sgml/ref/alter_database.sgml
index 7db878cf53..81e37536a3 100644
--- a/doc/src/sgml/ref/alter_database.sgml
+++ b/doc/src/sgml/ref/alter_database.sgml
@@ -31,7 +31,7 @@
ALTER DATABASE <replaceable class="parameter">name</replaceable> RENAME TO
<replaceable>new_name</replaceable>
-ALTER DATABASE <replaceable class="parameter">name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
+ALTER DATABASE <replaceable class="parameter">name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER |
SESSION_USER }
ALTER DATABASE <replaceable class="parameter">name</replaceable> SET
TABLESPACE <replaceable class="parameter">new_tablespace</replaceable>
diff --git a/doc/src/sgml/ref/alter_domain.sgml
b/doc/src/sgml/ref/alter_domain.sgml
index 8201cbb65f..afa42b4926 100644
--- a/doc/src/sgml/ref/alter_domain.sgml
+++ b/doc/src/sgml/ref/alter_domain.sgml
@@ -36,7 +36,7 @@
ALTER DOMAIN <replaceable class="parameter">name</replaceable>
VALIDATE CONSTRAINT <replaceable
class="parameter">constraint_name</replaceable>
ALTER DOMAIN <replaceable class="parameter">name</replaceable>
- OWNER TO { <replaceable class="parameter">new_owner</replaceable> |
CURRENT_USER | SESSION_USER }
+ OWNER TO { <replaceable class="parameter">new_owner</replaceable> |
CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER DOMAIN <replaceable class="parameter">name</replaceable>
RENAME TO <replaceable class="parameter">new_name</replaceable>
ALTER DOMAIN <replaceable class="parameter">name</replaceable>
diff --git a/doc/src/sgml/ref/alter_event_trigger.sgml
b/doc/src/sgml/ref/alter_event_trigger.sgml
index 61919f7845..ef5253bf37 100644
--- a/doc/src/sgml/ref/alter_event_trigger.sgml
+++ b/doc/src/sgml/ref/alter_event_trigger.sgml
@@ -23,7 +23,7 @@
<synopsis>
ALTER EVENT TRIGGER <replaceable class="parameter">name</replaceable> DISABLE
ALTER EVENT TRIGGER <replaceable class="parameter">name</replaceable> ENABLE [
REPLICA | ALWAYS ]
-ALTER EVENT TRIGGER <replaceable class="parameter">name</replaceable> OWNER TO
{ <replaceable class="parameter">new_owner</replaceable> | CURRENT_USER |
SESSION_USER }
+ALTER EVENT TRIGGER <replaceable class="parameter">name</replaceable> OWNER TO
{ <replaceable class="parameter">new_owner</replaceable> | CURRENT_ROLE |
CURRENT_USER | SESSION_USER }
ALTER EVENT TRIGGER <replaceable class="parameter">name</replaceable> RENAME
TO <replaceable class="parameter">new_name</replaceable>
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_foreign_data_wrapper.sgml
b/doc/src/sgml/ref/alter_foreign_data_wrapper.sgml
index 14f3d616e7..54f34c2c01 100644
--- a/doc/src/sgml/ref/alter_foreign_data_wrapper.sgml
+++ b/doc/src/sgml/ref/alter_foreign_data_wrapper.sgml
@@ -25,7 +25,7 @@
[ HANDLER <replaceable class="parameter">handler_function</replaceable> |
NO HANDLER ]
[ VALIDATOR <replaceable
class="parameter">validator_function</replaceable> | NO VALIDATOR ]
[ OPTIONS ( [ ADD | SET | DROP ] <replaceable
class="parameter">option</replaceable> ['<replaceable
class="parameter">value</replaceable>'] [, ... ]) ]
-ALTER FOREIGN DATA WRAPPER <replaceable class="parameter">name</replaceable>
OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
+ALTER FOREIGN DATA WRAPPER <replaceable class="parameter">name</replaceable>
OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER |
SESSION_USER }
ALTER FOREIGN DATA WRAPPER <replaceable class="parameter">name</replaceable>
RENAME TO <replaceable>new_name</replaceable>
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_foreign_table.sgml
b/doc/src/sgml/ref/alter_foreign_table.sgml
index 0f11897c99..04d53628ec 100644
--- a/doc/src/sgml/ref/alter_foreign_table.sgml
+++ b/doc/src/sgml/ref/alter_foreign_table.sgml
@@ -53,7 +53,7 @@
SET WITHOUT OIDS
INHERIT <replaceable class="parameter">parent_table</replaceable>
NO INHERIT <replaceable class="parameter">parent_table</replaceable>
- OWNER TO { <replaceable class="parameter">new_owner</replaceable> |
CURRENT_USER | SESSION_USER }
+ OWNER TO { <replaceable class="parameter">new_owner</replaceable> |
CURRENT_ROLE | CURRENT_USER | SESSION_USER }
OPTIONS ( [ ADD | SET | DROP ] <replaceable
class="parameter">option</replaceable> ['<replaceable
class="parameter">value</replaceable>'] [, ... ])
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_function.sgml
b/doc/src/sgml/ref/alter_function.sgml
index 70b1f24bc0..54e61e7d78 100644
--- a/doc/src/sgml/ref/alter_function.sgml
+++ b/doc/src/sgml/ref/alter_function.sgml
@@ -26,7 +26,7 @@
ALTER FUNCTION <replaceable>name</replaceable> [ ( [ [ <replaceable
class="parameter">argmode</replaceable> ] [ <replaceable
class="parameter">argname</replaceable> ] <replaceable
class="parameter">argtype</replaceable> [, ...] ] ) ]
RENAME TO <replaceable>new_name</replaceable>
ALTER FUNCTION <replaceable>name</replaceable> [ ( [ [ <replaceable
class="parameter">argmode</replaceable> ] [ <replaceable
class="parameter">argname</replaceable> ] <replaceable
class="parameter">argtype</replaceable> [, ...] ] ) ]
- OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_USER |
SESSION_USER }
+ OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_ROLE |
CURRENT_USER | SESSION_USER }
ALTER FUNCTION <replaceable>name</replaceable> [ ( [ [ <replaceable
class="parameter">argmode</replaceable> ] [ <replaceable
class="parameter">argname</replaceable> ] <replaceable
class="parameter">argtype</replaceable> [, ...] ] ) ]
SET SCHEMA <replaceable>new_schema</replaceable>
ALTER FUNCTION <replaceable>name</replaceable> [ ( [ [ <replaceable
class="parameter">argmode</replaceable> ] [ <replaceable
class="parameter">argname</replaceable> ] <replaceable
class="parameter">argtype</replaceable> [, ...] ] ) ]
diff --git a/doc/src/sgml/ref/alter_group.sgml
b/doc/src/sgml/ref/alter_group.sgml
index 39cc2b88cf..f6e5163109 100644
--- a/doc/src/sgml/ref/alter_group.sgml
+++ b/doc/src/sgml/ref/alter_group.sgml
@@ -27,6 +27,7 @@
<phrase>where <replaceable class="parameter">role_specification</replaceable>
can be:</phrase>
<replaceable class="parameter">role_name</replaceable>
+ | CURRENT_ROLE
| CURRENT_USER
| SESSION_USER
diff --git a/doc/src/sgml/ref/alter_language.sgml
b/doc/src/sgml/ref/alter_language.sgml
index eac63dec13..0b61c18aee 100644
--- a/doc/src/sgml/ref/alter_language.sgml
+++ b/doc/src/sgml/ref/alter_language.sgml
@@ -22,7 +22,7 @@
<refsynopsisdiv>
<synopsis>
ALTER [ PROCEDURAL ] LANGUAGE <replaceable>name</replaceable> RENAME TO
<replaceable>new_name</replaceable>
-ALTER [ PROCEDURAL ] LANGUAGE <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
+ALTER [ PROCEDURAL ] LANGUAGE <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER |
SESSION_USER }
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_large_object.sgml
b/doc/src/sgml/ref/alter_large_object.sgml
index 356f8a8eab..17ea1491ba 100644
--- a/doc/src/sgml/ref/alter_large_object.sgml
+++ b/doc/src/sgml/ref/alter_large_object.sgml
@@ -21,7 +21,7 @@
<refsynopsisdiv>
<synopsis>
-ALTER LARGE OBJECT <replaceable
class="parameter">large_object_oid</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
+ALTER LARGE OBJECT <replaceable
class="parameter">large_object_oid</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER |
SESSION_USER }
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_materialized_view.sgml
b/doc/src/sgml/ref/alter_materialized_view.sgml
index 9df8a79977..a9935b7629 100644
--- a/doc/src/sgml/ref/alter_materialized_view.sgml
+++ b/doc/src/sgml/ref/alter_materialized_view.sgml
@@ -44,7 +44,7 @@
SET WITHOUT CLUSTER
SET ( <replaceable class="parameter">storage_parameter</replaceable> =
<replaceable class="parameter">value</replaceable> [, ... ] )
RESET ( <replaceable class="parameter">storage_parameter</replaceable> [,
... ] )
- OWNER TO { <replaceable class="parameter">new_owner</replaceable> |
CURRENT_USER | SESSION_USER }
+ OWNER TO { <replaceable class="parameter">new_owner</replaceable> |
CURRENT_ROLE | CURRENT_USER | SESSION_USER }
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_opclass.sgml
b/doc/src/sgml/ref/alter_opclass.sgml
index 59a64caa4f..b1db459b11 100644
--- a/doc/src/sgml/ref/alter_opclass.sgml
+++ b/doc/src/sgml/ref/alter_opclass.sgml
@@ -25,7 +25,7 @@
RENAME TO <replaceable>new_name</replaceable>
ALTER OPERATOR CLASS <replaceable>name</replaceable> USING <replaceable
class="parameter">index_method</replaceable>
- OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_USER |
SESSION_USER }
+ OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_ROLE |
CURRENT_USER | SESSION_USER }
ALTER OPERATOR CLASS <replaceable>name</replaceable> USING <replaceable
class="parameter">index_method</replaceable>
SET SCHEMA <replaceable>new_schema</replaceable>
diff --git a/doc/src/sgml/ref/alter_operator.sgml
b/doc/src/sgml/ref/alter_operator.sgml
index b3bfa9ccbe..ac35f229a0 100644
--- a/doc/src/sgml/ref/alter_operator.sgml
+++ b/doc/src/sgml/ref/alter_operator.sgml
@@ -22,7 +22,7 @@
<refsynopsisdiv>
<synopsis>
ALTER OPERATOR <replaceable>name</replaceable> ( {
<replaceable>left_type</replaceable> | NONE } , {
<replaceable>right_type</replaceable> | NONE } )
- OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_USER |
SESSION_USER }
+ OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_ROLE |
CURRENT_USER | SESSION_USER }
ALTER OPERATOR <replaceable>name</replaceable> ( {
<replaceable>left_type</replaceable> | NONE } , {
<replaceable>right_type</replaceable> | NONE } )
SET SCHEMA <replaceable>new_schema</replaceable>
diff --git a/doc/src/sgml/ref/alter_opfamily.sgml
b/doc/src/sgml/ref/alter_opfamily.sgml
index 4ac1cca95a..59d5bf1070 100644
--- a/doc/src/sgml/ref/alter_opfamily.sgml
+++ b/doc/src/sgml/ref/alter_opfamily.sgml
@@ -37,7 +37,7 @@
RENAME TO <replaceable>new_name</replaceable>
ALTER OPERATOR FAMILY <replaceable>name</replaceable> USING <replaceable
class="parameter">index_method</replaceable>
- OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_USER |
SESSION_USER }
+ OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_ROLE |
CURRENT_USER | SESSION_USER }
ALTER OPERATOR FAMILY <replaceable>name</replaceable> USING <replaceable
class="parameter">index_method</replaceable>
SET SCHEMA <replaceable>new_schema</replaceable>
diff --git a/doc/src/sgml/ref/alter_policy.sgml
b/doc/src/sgml/ref/alter_policy.sgml
index a1c720a956..1c38324b59 100644
--- a/doc/src/sgml/ref/alter_policy.sgml
+++ b/doc/src/sgml/ref/alter_policy.sgml
@@ -24,7 +24,7 @@
ALTER POLICY <replaceable class="parameter">name</replaceable> ON <replaceable
class="parameter">table_name</replaceable> RENAME TO <replaceable
class="parameter">new_name</replaceable>
ALTER POLICY <replaceable class="parameter">name</replaceable> ON <replaceable
class="parameter">table_name</replaceable>
- [ TO { <replaceable class="parameter">role_name</replaceable> | PUBLIC |
CURRENT_USER | SESSION_USER } [, ...] ]
+ [ TO { <replaceable class="parameter">role_name</replaceable> | PUBLIC |
CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] ]
[ USING ( <replaceable class="parameter">using_expression</replaceable> ) ]
[ WITH CHECK ( <replaceable
class="parameter">check_expression</replaceable> ) ]
</synopsis>
diff --git a/doc/src/sgml/ref/alter_procedure.sgml
b/doc/src/sgml/ref/alter_procedure.sgml
index dae80076d9..bcf45c7a85 100644
--- a/doc/src/sgml/ref/alter_procedure.sgml
+++ b/doc/src/sgml/ref/alter_procedure.sgml
@@ -26,7 +26,7 @@
ALTER PROCEDURE <replaceable>name</replaceable> [ ( [ [ <replaceable
class="parameter">argmode</replaceable> ] [ <replaceable
class="parameter">argname</replaceable> ] <replaceable
class="parameter">argtype</replaceable> [, ...] ] ) ]
RENAME TO <replaceable>new_name</replaceable>
ALTER PROCEDURE <replaceable>name</replaceable> [ ( [ [ <replaceable
class="parameter">argmode</replaceable> ] [ <replaceable
class="parameter">argname</replaceable> ] <replaceable
class="parameter">argtype</replaceable> [, ...] ] ) ]
- OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_USER |
SESSION_USER }
+ OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_ROLE |
CURRENT_USER | SESSION_USER }
ALTER PROCEDURE <replaceable>name</replaceable> [ ( [ [ <replaceable
class="parameter">argmode</replaceable> ] [ <replaceable
class="parameter">argname</replaceable> ] <replaceable
class="parameter">argtype</replaceable> [, ...] ] ) ]
SET SCHEMA <replaceable>new_schema</replaceable>
ALTER PROCEDURE <replaceable>name</replaceable> [ ( [ [ <replaceable
class="parameter">argmode</replaceable> ] [ <replaceable
class="parameter">argname</replaceable> ] <replaceable
class="parameter">argtype</replaceable> [, ...] ] ) ]
diff --git a/doc/src/sgml/ref/alter_publication.sgml
b/doc/src/sgml/ref/alter_publication.sgml
index 534e598d93..c2946dfe0f 100644
--- a/doc/src/sgml/ref/alter_publication.sgml
+++ b/doc/src/sgml/ref/alter_publication.sgml
@@ -25,7 +25,7 @@
ALTER PUBLICATION <replaceable class="parameter">name</replaceable> SET TABLE
[ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ] [, ...]
ALTER PUBLICATION <replaceable class="parameter">name</replaceable> DROP TABLE
[ ONLY ] <replaceable class="parameter">table_name</replaceable> [ * ] [, ...]
ALTER PUBLICATION <replaceable class="parameter">name</replaceable> SET (
<replaceable class="parameter">publication_parameter</replaceable> [=
<replaceable class="parameter">value</replaceable>] [, ... ] )
-ALTER PUBLICATION <replaceable class="parameter">name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
+ALTER PUBLICATION <replaceable class="parameter">name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER |
SESSION_USER }
ALTER PUBLICATION <replaceable class="parameter">name</replaceable> RENAME TO
<replaceable>new_name</replaceable>
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_role.sgml b/doc/src/sgml/ref/alter_role.sgml
index dbf258ef50..d5f166c129 100644
--- a/doc/src/sgml/ref/alter_role.sgml
+++ b/doc/src/sgml/ref/alter_role.sgml
@@ -46,6 +46,7 @@
<phrase>where <replaceable class="parameter">role_specification</replaceable>
can be:</phrase>
<replaceable class="parameter">role_name</replaceable>
+ | CURRENT_ROLE
| CURRENT_USER
| SESSION_USER
</synopsis>
@@ -134,6 +135,7 @@ <title>Parameters</title>
</varlistentry>
<varlistentry>
+ <term><literal>CURRENT_ROLE</literal></term>
<term><literal>CURRENT_USER</literal></term>
<listitem>
<para>
diff --git a/doc/src/sgml/ref/alter_routine.sgml
b/doc/src/sgml/ref/alter_routine.sgml
index d1699691e1..36acaff319 100644
--- a/doc/src/sgml/ref/alter_routine.sgml
+++ b/doc/src/sgml/ref/alter_routine.sgml
@@ -26,7 +26,7 @@
ALTER ROUTINE <replaceable>name</replaceable> [ ( [ [ <replaceable
class="parameter">argmode</replaceable> ] [ <replaceable
class="parameter">argname</replaceable> ] <replaceable
class="parameter">argtype</replaceable> [, ...] ] ) ]
RENAME TO <replaceable>new_name</replaceable>
ALTER ROUTINE <replaceable>name</replaceable> [ ( [ [ <replaceable
class="parameter">argmode</replaceable> ] [ <replaceable
class="parameter">argname</replaceable> ] <replaceable
class="parameter">argtype</replaceable> [, ...] ] ) ]
- OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_USER |
SESSION_USER }
+ OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_ROLE |
CURRENT_USER | SESSION_USER }
ALTER ROUTINE <replaceable>name</replaceable> [ ( [ [ <replaceable
class="parameter">argmode</replaceable> ] [ <replaceable
class="parameter">argname</replaceable> ] <replaceable
class="parameter">argtype</replaceable> [, ...] ] ) ]
SET SCHEMA <replaceable>new_schema</replaceable>
ALTER ROUTINE <replaceable>name</replaceable> [ ( [ [ <replaceable
class="parameter">argmode</replaceable> ] [ <replaceable
class="parameter">argname</replaceable> ] <replaceable
class="parameter">argtype</replaceable> [, ...] ] ) ]
diff --git a/doc/src/sgml/ref/alter_schema.sgml
b/doc/src/sgml/ref/alter_schema.sgml
index 2937214026..04624c5a5e 100644
--- a/doc/src/sgml/ref/alter_schema.sgml
+++ b/doc/src/sgml/ref/alter_schema.sgml
@@ -22,7 +22,7 @@
<refsynopsisdiv>
<synopsis>
ALTER SCHEMA <replaceable>name</replaceable> RENAME TO
<replaceable>new_name</replaceable>
-ALTER SCHEMA <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
+ALTER SCHEMA <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER |
SESSION_USER }
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_sequence.sgml
b/doc/src/sgml/ref/alter_sequence.sgml
index bfd20af6d3..3cd9ece49f 100644
--- a/doc/src/sgml/ref/alter_sequence.sgml
+++ b/doc/src/sgml/ref/alter_sequence.sgml
@@ -31,7 +31,7 @@
[ RESTART [ [ WITH ] <replaceable class="parameter">restart</replaceable>
] ]
[ CACHE <replaceable class="parameter">cache</replaceable> ] [ [ NO ]
CYCLE ]
[ OWNED BY { <replaceable
class="parameter">table_name</replaceable>.<replaceable
class="parameter">column_name</replaceable> | NONE } ]
-ALTER SEQUENCE [ IF EXISTS ] <replaceable class="parameter">name</replaceable>
OWNER TO { <replaceable class="parameter">new_owner</replaceable> |
CURRENT_USER | SESSION_USER }
+ALTER SEQUENCE [ IF EXISTS ] <replaceable class="parameter">name</replaceable>
OWNER TO { <replaceable class="parameter">new_owner</replaceable> |
CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER SEQUENCE [ IF EXISTS ] <replaceable class="parameter">name</replaceable>
RENAME TO <replaceable class="parameter">new_name</replaceable>
ALTER SEQUENCE [ IF EXISTS ] <replaceable class="parameter">name</replaceable>
SET SCHEMA <replaceable class="parameter">new_schema</replaceable>
</synopsis>
diff --git a/doc/src/sgml/ref/alter_server.sgml
b/doc/src/sgml/ref/alter_server.sgml
index 17e55b093e..186f38b5f8 100644
--- a/doc/src/sgml/ref/alter_server.sgml
+++ b/doc/src/sgml/ref/alter_server.sgml
@@ -23,7 +23,7 @@
<synopsis>
ALTER SERVER <replaceable class="parameter">name</replaceable> [ VERSION
'<replaceable class="parameter">new_version</replaceable>' ]
[ OPTIONS ( [ ADD | SET | DROP ] <replaceable
class="parameter">option</replaceable> ['<replaceable
class="parameter">value</replaceable>'] [, ... ] ) ]
-ALTER SERVER <replaceable class="parameter">name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
+ALTER SERVER <replaceable class="parameter">name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER |
SESSION_USER }
ALTER SERVER <replaceable class="parameter">name</replaceable> RENAME TO
<replaceable>new_name</replaceable>
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_statistics.sgml
b/doc/src/sgml/ref/alter_statistics.sgml
index be4c3f1f05..112f5d8924 100644
--- a/doc/src/sgml/ref/alter_statistics.sgml
+++ b/doc/src/sgml/ref/alter_statistics.sgml
@@ -23,7 +23,7 @@
<refsynopsisdiv>
<synopsis>
-ALTER STATISTICS <replaceable class="parameter">name</replaceable> OWNER TO {
<replaceable class="parameter">new_owner</replaceable> | CURRENT_USER |
SESSION_USER }
+ALTER STATISTICS <replaceable class="parameter">name</replaceable> OWNER TO {
<replaceable class="parameter">new_owner</replaceable> | CURRENT_ROLE |
CURRENT_USER | SESSION_USER }
ALTER STATISTICS <replaceable class="parameter">name</replaceable> RENAME TO
<replaceable class="parameter">new_name</replaceable>
ALTER STATISTICS <replaceable class="parameter">name</replaceable> SET SCHEMA
<replaceable class="parameter">new_schema</replaceable>
ALTER STATISTICS <replaceable class="parameter">name</replaceable> SET
STATISTICS <replaceable class="parameter">new_target</replaceable>
diff --git a/doc/src/sgml/ref/alter_subscription.sgml
b/doc/src/sgml/ref/alter_subscription.sgml
index c24ace14d1..447a5847fc 100644
--- a/doc/src/sgml/ref/alter_subscription.sgml
+++ b/doc/src/sgml/ref/alter_subscription.sgml
@@ -27,7 +27,7 @@
ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> ENABLE
ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> DISABLE
ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> SET (
<replaceable class="parameter">subscription_parameter</replaceable> [=
<replaceable class="parameter">value</replaceable>] [, ... ] )
-ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> OWNER TO
{ <replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
+ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> OWNER TO
{ <replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER |
SESSION_USER }
ALTER SUBSCRIPTION <replaceable class="parameter">name</replaceable> RENAME TO
<replaceable>new_name</replaceable>
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_table.sgml
b/doc/src/sgml/ref/alter_table.sgml
index cbfb4828e5..cbbc8f2f91 100644
--- a/doc/src/sgml/ref/alter_table.sgml
+++ b/doc/src/sgml/ref/alter_table.sgml
@@ -82,7 +82,7 @@
NO INHERIT <replaceable class="parameter">parent_table</replaceable>
OF <replaceable class="parameter">type_name</replaceable>
NOT OF
- OWNER TO { <replaceable class="parameter">new_owner</replaceable> |
CURRENT_USER | SESSION_USER }
+ OWNER TO { <replaceable class="parameter">new_owner</replaceable> |
CURRENT_ROLE | CURRENT_USER | SESSION_USER }
REPLICA IDENTITY { DEFAULT | USING INDEX <replaceable
class="parameter">index_name</replaceable> | FULL | NOTHING }
<phrase>and <replaceable class="parameter">partition_bound_spec</replaceable>
is:</phrase>
diff --git a/doc/src/sgml/ref/alter_tablespace.sgml
b/doc/src/sgml/ref/alter_tablespace.sgml
index 356fb9f93f..6de80746d5 100644
--- a/doc/src/sgml/ref/alter_tablespace.sgml
+++ b/doc/src/sgml/ref/alter_tablespace.sgml
@@ -22,7 +22,7 @@
<refsynopsisdiv>
<synopsis>
ALTER TABLESPACE <replaceable>name</replaceable> RENAME TO
<replaceable>new_name</replaceable>
-ALTER TABLESPACE <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
+ALTER TABLESPACE <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER |
SESSION_USER }
ALTER TABLESPACE <replaceable>name</replaceable> SET ( <replaceable
class="parameter">tablespace_option</replaceable> = <replaceable
class="parameter">value</replaceable> [, ... ] )
ALTER TABLESPACE <replaceable>name</replaceable> RESET ( <replaceable
class="parameter">tablespace_option</replaceable> [, ... ] )
</synopsis>
diff --git a/doc/src/sgml/ref/alter_tsconfig.sgml
b/doc/src/sgml/ref/alter_tsconfig.sgml
index ebe0b94b27..8fafcd3bbd 100644
--- a/doc/src/sgml/ref/alter_tsconfig.sgml
+++ b/doc/src/sgml/ref/alter_tsconfig.sgml
@@ -32,7 +32,7 @@
ALTER TEXT SEARCH CONFIGURATION <replaceable>name</replaceable>
DROP MAPPING [ IF EXISTS ] FOR <replaceable
class="parameter">token_type</replaceable> [, ... ]
ALTER TEXT SEARCH CONFIGURATION <replaceable>name</replaceable> RENAME TO
<replaceable>new_name</replaceable>
-ALTER TEXT SEARCH CONFIGURATION <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
+ALTER TEXT SEARCH CONFIGURATION <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER |
SESSION_USER }
ALTER TEXT SEARCH CONFIGURATION <replaceable>name</replaceable> SET SCHEMA
<replaceable>new_schema</replaceable>
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_tsdictionary.sgml
b/doc/src/sgml/ref/alter_tsdictionary.sgml
index b29865e11e..d1923ef160 100644
--- a/doc/src/sgml/ref/alter_tsdictionary.sgml
+++ b/doc/src/sgml/ref/alter_tsdictionary.sgml
@@ -25,7 +25,7 @@
<replaceable class="parameter">option</replaceable> [ = <replaceable
class="parameter">value</replaceable> ] [, ... ]
)
ALTER TEXT SEARCH DICTIONARY <replaceable>name</replaceable> RENAME TO
<replaceable>new_name</replaceable>
-ALTER TEXT SEARCH DICTIONARY <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_USER | SESSION_USER }
+ALTER TEXT SEARCH DICTIONARY <replaceable>name</replaceable> OWNER TO {
<replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER |
SESSION_USER }
ALTER TEXT SEARCH DICTIONARY <replaceable>name</replaceable> SET SCHEMA
<replaceable>new_schema</replaceable>
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/alter_type.sgml b/doc/src/sgml/ref/alter_type.sgml
index f015fcd268..a4f09c660b 100644
--- a/doc/src/sgml/ref/alter_type.sgml
+++ b/doc/src/sgml/ref/alter_type.sgml
@@ -23,7 +23,7 @@
<refsynopsisdiv>
<synopsis>
-ALTER TYPE <replaceable class="parameter">name</replaceable> OWNER TO {
<replaceable class="parameter">new_owner</replaceable> | CURRENT_USER |
SESSION_USER }
+ALTER TYPE <replaceable class="parameter">name</replaceable> OWNER TO {
<replaceable class="parameter">new_owner</replaceable> | CURRENT_ROLE |
CURRENT_USER | SESSION_USER }
ALTER TYPE <replaceable class="parameter">name</replaceable> RENAME TO
<replaceable class="parameter">new_name</replaceable>
ALTER TYPE <replaceable class="parameter">name</replaceable> SET SCHEMA
<replaceable class="parameter">new_schema</replaceable>
ALTER TYPE <replaceable class="parameter">name</replaceable> RENAME ATTRIBUTE
<replaceable class="parameter">attribute_name</replaceable> TO <replaceable
class="parameter">new_attribute_name</replaceable> [ CASCADE | RESTRICT ]
diff --git a/doc/src/sgml/ref/alter_user.sgml b/doc/src/sgml/ref/alter_user.sgml
index 6769c8ecc4..51527cefb4 100644
--- a/doc/src/sgml/ref/alter_user.sgml
+++ b/doc/src/sgml/ref/alter_user.sgml
@@ -46,6 +46,7 @@
<phrase>where <replaceable class="parameter">role_specification</replaceable>
can be:</phrase>
<replaceable class="parameter">role_name</replaceable>
+ | CURRENT_ROLE
| CURRENT_USER
| SESSION_USER
</synopsis>
diff --git a/doc/src/sgml/ref/alter_user_mapping.sgml
b/doc/src/sgml/ref/alter_user_mapping.sgml
index 7a9b5a188a..ee5aee9bc9 100644
--- a/doc/src/sgml/ref/alter_user_mapping.sgml
+++ b/doc/src/sgml/ref/alter_user_mapping.sgml
@@ -21,7 +21,7 @@
<refsynopsisdiv>
<synopsis>
-ALTER USER MAPPING FOR { <replaceable
class="parameter">user_name</replaceable> | USER | CURRENT_USER | SESSION_USER
| PUBLIC }
+ALTER USER MAPPING FOR { <replaceable
class="parameter">user_name</replaceable> | USER | CURRENT_ROLE | CURRENT_USER
| SESSION_USER | PUBLIC }
SERVER <replaceable class="parameter">server_name</replaceable>
OPTIONS ( [ ADD | SET | DROP ] <replaceable
class="parameter">option</replaceable> ['<replaceable
class="parameter">value</replaceable>'] [, ... ] )
</synopsis>
@@ -51,7 +51,7 @@ <title>Parameters</title>
<term><replaceable class="parameter">user_name</replaceable></term>
<listitem>
<para>
- User name of the mapping. <literal>CURRENT_USER</literal>
+ User name of the mapping. <literal>CURRENT_ROLE</literal>,
<literal>CURRENT_USER</literal>,
and <literal>USER</literal> match the name of the current
user. <literal>PUBLIC</literal> is used to match all present and future
user names in the system.
diff --git a/doc/src/sgml/ref/alter_view.sgml b/doc/src/sgml/ref/alter_view.sgml
index e8d9e11e0f..98c312c5bf 100644
--- a/doc/src/sgml/ref/alter_view.sgml
+++ b/doc/src/sgml/ref/alter_view.sgml
@@ -23,7 +23,7 @@
<synopsis>
ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable>
ALTER [ COLUMN ] <replaceable class="parameter">column_name</replaceable> SET
DEFAULT <replaceable class="parameter">expression</replaceable>
ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable>
ALTER [ COLUMN ] <replaceable class="parameter">column_name</replaceable> DROP
DEFAULT
-ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable>
OWNER TO { <replaceable class="parameter">new_owner</replaceable> |
CURRENT_USER | SESSION_USER }
+ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable>
OWNER TO { <replaceable class="parameter">new_owner</replaceable> |
CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable>
RENAME [ COLUMN ] <replaceable class="parameter">column_name</replaceable> TO
<replaceable class="parameter">new_column_name</replaceable>
ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable>
RENAME TO <replaceable class="parameter">new_name</replaceable>
ALTER VIEW [ IF EXISTS ] <replaceable class="parameter">name</replaceable> SET
SCHEMA <replaceable class="parameter">new_schema</replaceable>
diff --git a/doc/src/sgml/ref/create_policy.sgml
b/doc/src/sgml/ref/create_policy.sgml
index 2e1229c4f9..b4f9056101 100644
--- a/doc/src/sgml/ref/create_policy.sgml
+++ b/doc/src/sgml/ref/create_policy.sgml
@@ -24,7 +24,7 @@
CREATE POLICY <replaceable class="parameter">name</replaceable> ON
<replaceable class="parameter">table_name</replaceable>
[ AS { PERMISSIVE | RESTRICTIVE } ]
[ FOR { ALL | SELECT | INSERT | UPDATE | DELETE } ]
- [ TO { <replaceable class="parameter">role_name</replaceable> | PUBLIC |
CURRENT_USER | SESSION_USER } [, ...] ]
+ [ TO { <replaceable class="parameter">role_name</replaceable> | PUBLIC |
CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] ]
[ USING ( <replaceable class="parameter">using_expression</replaceable> ) ]
[ WITH CHECK ( <replaceable
class="parameter">check_expression</replaceable> ) ]
</synopsis>
diff --git a/doc/src/sgml/ref/create_schema.sgml
b/doc/src/sgml/ref/create_schema.sgml
index ffbe1ba3bc..3c2dddb163 100644
--- a/doc/src/sgml/ref/create_schema.sgml
+++ b/doc/src/sgml/ref/create_schema.sgml
@@ -29,6 +29,7 @@
<phrase>where <replaceable class="parameter">role_specification</replaceable>
can be:</phrase>
<replaceable class="parameter">user_name</replaceable>
+ | CURRENT_ROLE
| CURRENT_USER
| SESSION_USER
</synopsis>
diff --git a/doc/src/sgml/ref/create_tablespace.sgml
b/doc/src/sgml/ref/create_tablespace.sgml
index 462b8831c2..84fa7ee5e2 100644
--- a/doc/src/sgml/ref/create_tablespace.sgml
+++ b/doc/src/sgml/ref/create_tablespace.sgml
@@ -22,7 +22,7 @@
<refsynopsisdiv>
<synopsis>
CREATE TABLESPACE <replaceable class="parameter">tablespace_name</replaceable>
- [ OWNER { <replaceable>new_owner</replaceable> | CURRENT_USER |
SESSION_USER } ]
+ [ OWNER { <replaceable>new_owner</replaceable> | CURRENT_ROLE |
CURRENT_USER | SESSION_USER } ]
LOCATION '<replaceable class="parameter">directory</replaceable>'
[ WITH ( <replaceable class="parameter">tablespace_option</replaceable> =
<replaceable class="parameter">value</replaceable> [, ... ] ) ]
</synopsis>
diff --git a/doc/src/sgml/ref/create_user_mapping.sgml
b/doc/src/sgml/ref/create_user_mapping.sgml
index 9719a4ff2c..55debd5401 100644
--- a/doc/src/sgml/ref/create_user_mapping.sgml
+++ b/doc/src/sgml/ref/create_user_mapping.sgml
@@ -21,7 +21,7 @@
<refsynopsisdiv>
<synopsis>
-CREATE USER MAPPING [ IF NOT EXISTS ] FOR { <replaceable
class="parameter">user_name</replaceable> | USER | CURRENT_USER | PUBLIC }
+CREATE USER MAPPING [ IF NOT EXISTS ] FOR { <replaceable
class="parameter">user_name</replaceable> | USER | CURRENT_ROLE | CURRENT_USER
| PUBLIC }
SERVER <replaceable class="parameter">server_name</replaceable>
[ OPTIONS ( <replaceable class="parameter">option</replaceable>
'<replaceable class="parameter">value</replaceable>' [ , ... ] ) ]
</synopsis>
@@ -67,7 +67,7 @@ <title>Parameters</title>
<listitem>
<para>
The name of an existing user that is mapped to foreign server.
- <literal>CURRENT_USER</literal> and <literal>USER</literal> match the
name of
+ <literal>CURRENT_ROLE</literal>, <literal>CURRENT_USER</literal>, and
<literal>USER</literal> match the name of
the current user. When <literal>PUBLIC</literal> is specified, a
so-called public mapping is created that is used when no
user-specific mapping is applicable.
diff --git a/doc/src/sgml/ref/drop_owned.sgml b/doc/src/sgml/ref/drop_owned.sgml
index 09107bef64..dcc375f33b 100644
--- a/doc/src/sgml/ref/drop_owned.sgml
+++ b/doc/src/sgml/ref/drop_owned.sgml
@@ -21,7 +21,7 @@
<refsynopsisdiv>
<synopsis>
-DROP OWNED BY { <replaceable class="parameter">name</replaceable> |
CURRENT_USER | SESSION_USER } [, ...] [ CASCADE | RESTRICT ]
+DROP OWNED BY { <replaceable class="parameter">name</replaceable> |
CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] [ CASCADE | RESTRICT ]
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/drop_user_mapping.sgml
b/doc/src/sgml/ref/drop_user_mapping.sgml
index 7cb09f1166..9e8896a307 100644
--- a/doc/src/sgml/ref/drop_user_mapping.sgml
+++ b/doc/src/sgml/ref/drop_user_mapping.sgml
@@ -21,7 +21,7 @@
<refsynopsisdiv>
<synopsis>
-DROP USER MAPPING [ IF EXISTS ] FOR { <replaceable
class="parameter">user_name</replaceable> | USER | CURRENT_USER | PUBLIC }
SERVER <replaceable class="parameter">server_name</replaceable>
+DROP USER MAPPING [ IF EXISTS ] FOR { <replaceable
class="parameter">user_name</replaceable> | USER | CURRENT_ROLE | CURRENT_USER
| PUBLIC } SERVER <replaceable class="parameter">server_name</replaceable>
</synopsis>
</refsynopsisdiv>
@@ -59,7 +59,7 @@ <title>Parameters</title>
<term><replaceable class="parameter">user_name</replaceable></term>
<listitem>
<para>
- User name of the mapping. <literal>CURRENT_USER</literal>
+ User name of the mapping. <literal>CURRENT_ROLE</literal>,
<literal>CURRENT_USER</literal>,
and <literal>USER</literal> match the name of the current
user. <literal>PUBLIC</literal> is used to match all present and
future user names in the system.
diff --git a/doc/src/sgml/ref/grant.sgml b/doc/src/sgml/ref/grant.sgml
index bc573f7826..fe231aa30c 100644
--- a/doc/src/sgml/ref/grant.sgml
+++ b/doc/src/sgml/ref/grant.sgml
@@ -87,6 +87,7 @@
[ GROUP ] <replaceable class="parameter">role_name</replaceable>
| PUBLIC
+ | CURRENT_ROLE
| CURRENT_USER
| SESSION_USER
</synopsis>
diff --git a/doc/src/sgml/ref/reassign_owned.sgml
b/doc/src/sgml/ref/reassign_owned.sgml
index 42f72a726f..783389df4e 100644
--- a/doc/src/sgml/ref/reassign_owned.sgml
+++ b/doc/src/sgml/ref/reassign_owned.sgml
@@ -21,8 +21,8 @@
<refsynopsisdiv>
<synopsis>
-REASSIGN OWNED BY { <replaceable class="parameter">old_role</replaceable> |
CURRENT_USER | SESSION_USER } [, ...]
- TO { <replaceable class="parameter">new_role</replaceable> |
CURRENT_USER | SESSION_USER }
+REASSIGN OWNED BY { <replaceable class="parameter">old_role</replaceable> |
CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...]
+ TO { <replaceable class="parameter">new_role</replaceable> |
CURRENT_ROLE | CURRENT_USER | SESSION_USER }
</synopsis>
</refsynopsisdiv>
diff --git a/doc/src/sgml/ref/revoke.sgml b/doc/src/sgml/ref/revoke.sgml
index b6bac21c57..b50f99dfe7 100644
--- a/doc/src/sgml/ref/revoke.sgml
+++ b/doc/src/sgml/ref/revoke.sgml
@@ -114,6 +114,7 @@
[ GROUP ] <replaceable class="parameter">role_name</replaceable>
| PUBLIC
+ | CURRENT_ROLE
| CURRENT_USER
| SESSION_USER
</synopsis>
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index e669d75a5a..6e6565dc26 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -14949,6 +14949,10 @@ RoleSpec: NonReservedWord
}
$$ = n;
}
+ | CURRENT_ROLE
+ {
+ $$ =
makeRoleSpec(ROLESPEC_CURRENT_USER, @1);
+ }
| CURRENT_USER
{
$$ =
makeRoleSpec(ROLESPEC_CURRENT_USER, @1);
--
2.27.0