Add missing ALTER USER variants
authorPeter Eisentraut
Fri, 4 Aug 2017 00:49:07 +0000 (20:49 -0400)
committerPeter Eisentraut
Fri, 4 Aug 2017 01:29:36 +0000 (21:29 -0400)
ALTER USER ... SET did not support all the syntax variants of ALTER ROLE
...  SET.

Reported-by: Pavel Golub
doc/src/sgml/ref/alter_role.sgml
doc/src/sgml/ref/alter_user.sgml
src/backend/parser/gram.y

index b0981fdd5d5dfb073667d9d8bd391ea5c4fb73e5..e4428fc9396ffa0cd927b968f62293046b4326ab 100644 (file)
@@ -38,7 +38,7 @@ ALTER ROLE name [ [ WITH ] 
 
 ALTER ROLE name RENAME TO new_name
 
-ALTER ROLE name [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }
+ALTER ROLE name | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }
 ALTER ROLE { name | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT
 ALTER ROLE { name | ALL } [ IN DATABASE database_name ] RESET configuration_parameter
 ALTER ROLE { name | ALL } [ IN DATABASE database_name ] RESET ALL
index 7588f636ed2324411a293c0ebf4e880a93462379..2302ce3a65cacf1b8b982a7f4ed688b32e0a797c 100644 (file)
@@ -38,10 +38,10 @@ ALTER USER name [ [ WITH ] 
 
 ALTER USER name RENAME TO new_name
 
-ALTER USER name SET configuration_parameter { TO | = } { value | DEFAULT }
-ALTER USER name SET configuration_parameter FROM CURRENT
-ALTER USER name RESET configuration_parameter
-ALTER USER name RESET ALL
+ALTER USER name | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT }
+ALTER USER name | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT
+ALTER USER name | ALL } [ IN DATABASE database_name ] RESET configuration_parameter
+ALTER USER name | ALL } [ IN DATABASE database_name ] RESET ALL
 
  
 
index f8bb66501ad66ef4a97314eeac7ac27429e06cf9..563dc91a86929565bd0372927751eed8b94c20a0 100644 (file)
@@ -1049,12 +1049,20 @@ AlterUserStmt:
 
 
 AlterUserSetStmt:
-           ALTER USER RoleId SetResetClause
+           ALTER USER RoleId opt_in_database SetResetClause
                {
                    AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
                    n->role = $3;
-                   n->database = NULL;
-                   n->setstmt = $4;
+                   n->database = $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;
                }
            ;