mirror of
https://github.com/postgres/postgres.git
synced 2025-07-08 11:42:09 +03:00
Add missing ALTER USER variants
ALTER USER ... SET did not support all the syntax variants of ALTER ROLE ... SET. Reported-by: Pavel Golub <pavel@microolap.com>
This commit is contained in:
@ -38,10 +38,10 @@ ALTER USER <replaceable class="PARAMETER">role_specification</replaceable> [ WIT
|
|||||||
|
|
||||||
ALTER USER <replaceable class="PARAMETER">name</replaceable> RENAME TO <replaceable>new_name</replaceable>
|
ALTER USER <replaceable class="PARAMETER">name</replaceable> RENAME TO <replaceable>new_name</replaceable>
|
||||||
|
|
||||||
ALTER USER <replaceable class="PARAMETER">role_specification</replaceable> SET <replaceable>configuration_parameter</replaceable> { TO | = } { <replaceable>value</replaceable> | DEFAULT }
|
ALTER USER { <replaceable class="PARAMETER">role_specification</replaceable> | ALL } [ IN DATABASE <replaceable class="PARAMETER">database_name</replaceable> ] SET <replaceable>configuration_parameter</replaceable> { TO | = } { <replaceable>value</replaceable> | DEFAULT }
|
||||||
ALTER USER <replaceable class="PARAMETER">role_specification</replaceable> SET <replaceable>configuration_parameter</replaceable> FROM CURRENT
|
ALTER USER { <replaceable class="PARAMETER">role_specification</replaceable> | ALL } [ IN DATABASE <replaceable class="PARAMETER">database_name</replaceable> ] SET <replaceable>configuration_parameter</replaceable> FROM CURRENT
|
||||||
ALTER USER <replaceable class="PARAMETER">role_specification</replaceable> RESET <replaceable>configuration_parameter</replaceable>
|
ALTER USER { <replaceable class="PARAMETER">role_specification</replaceable> | ALL } [ IN DATABASE <replaceable class="PARAMETER">database_name</replaceable> ] RESET <replaceable>configuration_parameter</replaceable>
|
||||||
ALTER USER <replaceable class="PARAMETER">role_specification</replaceable> RESET ALL
|
ALTER USER { <replaceable class="PARAMETER">role_specification</replaceable> | ALL } [ IN DATABASE <replaceable class="PARAMETER">database_name</replaceable> ] RESET ALL
|
||||||
|
|
||||||
<phrase>where <replaceable class="PARAMETER">role_specification</replaceable> can be:</phrase>
|
<phrase>where <replaceable class="PARAMETER">role_specification</replaceable> can be:</phrase>
|
||||||
|
|
||||||
|
@ -1111,12 +1111,20 @@ AlterUserStmt:
|
|||||||
|
|
||||||
|
|
||||||
AlterUserSetStmt:
|
AlterUserSetStmt:
|
||||||
ALTER USER RoleSpec SetResetClause
|
ALTER USER RoleSpec opt_in_database SetResetClause
|
||||||
{
|
{
|
||||||
AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
|
AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
|
||||||
n->role = $3;
|
n->role = $3;
|
||||||
n->database = NULL;
|
n->database = $4;
|
||||||
n->setstmt = $4;
|
n->setstmt = $5;
|
||||||
|
$$ = (Node *)n;
|
||||||
|
}
|
||||||
|
| ALTER USER ALL opt_in_database SetResetClause
|
||||||
|
{
|
||||||
|
AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
|
||||||
|
n->role = NULL;
|
||||||
|
n->database = $4;
|
||||||
|
n->setstmt = $5;
|
||||||
$$ = (Node *)n;
|
$$ = (Node *)n;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
@ -310,9 +310,9 @@ ERROR: syntax error at or near "CURRENT_ROLE"
|
|||||||
LINE 1: ALTER USER CURRENT_ROLE WITH LOGIN;
|
LINE 1: ALTER USER CURRENT_ROLE WITH LOGIN;
|
||||||
^
|
^
|
||||||
ALTER USER ALL WITH REPLICATION; -- error
|
ALTER USER ALL WITH REPLICATION; -- error
|
||||||
ERROR: syntax error at or near "ALL"
|
ERROR: syntax error at or near "WITH"
|
||||||
LINE 1: ALTER USER ALL WITH REPLICATION;
|
LINE 1: ALTER USER ALL WITH REPLICATION;
|
||||||
^
|
^
|
||||||
ALTER USER SESSION_ROLE WITH NOREPLICATION; -- error
|
ALTER USER SESSION_ROLE WITH NOREPLICATION; -- error
|
||||||
ERROR: role "session_role" does not exist
|
ERROR: role "session_role" does not exist
|
||||||
ALTER USER PUBLIC WITH NOREPLICATION; -- error
|
ALTER USER PUBLIC WITH NOREPLICATION; -- error
|
||||||
@ -392,9 +392,6 @@ ALTER USER SESSION_USER SET application_name to 'BAR';
|
|||||||
ALTER USER "current_user" SET application_name to 'FOOFOO';
|
ALTER USER "current_user" SET application_name to 'FOOFOO';
|
||||||
ALTER USER "Public" SET application_name to 'BARBAR';
|
ALTER USER "Public" SET application_name to 'BARBAR';
|
||||||
ALTER USER ALL SET application_name to 'SLAP';
|
ALTER USER ALL SET application_name to 'SLAP';
|
||||||
ERROR: syntax error at or near "ALL"
|
|
||||||
LINE 1: ALTER USER ALL SET application_name to 'SLAP';
|
|
||||||
^
|
|
||||||
SELECT * FROM chksetconfig();
|
SELECT * FROM chksetconfig();
|
||||||
db | role | rolkeyword | setconfig
|
db | role | rolkeyword | setconfig
|
||||||
-----+------------------+--------------+---------------------------
|
-----+------------------+--------------+---------------------------
|
||||||
@ -419,9 +416,6 @@ ALTER USER SESSION_USER RESET application_name;
|
|||||||
ALTER USER "current_user" RESET application_name;
|
ALTER USER "current_user" RESET application_name;
|
||||||
ALTER USER "Public" RESET application_name;
|
ALTER USER "Public" RESET application_name;
|
||||||
ALTER USER ALL RESET application_name;
|
ALTER USER ALL RESET application_name;
|
||||||
ERROR: syntax error at or near "ALL"
|
|
||||||
LINE 1: ALTER USER ALL RESET application_name;
|
|
||||||
^
|
|
||||||
SELECT * FROM chksetconfig();
|
SELECT * FROM chksetconfig();
|
||||||
db | role | rolkeyword | setconfig
|
db | role | rolkeyword | setconfig
|
||||||
----+------+------------+-----------
|
----+------+------------+-----------
|
||||||
|
Reference in New Issue
Block a user