From b7d1bc820e191d8b56a35c8a8af409062c3a71be Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Thu, 3 Aug 2017 20:49:07 -0400 Subject: [PATCH] Add missing ALTER USER variants 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 | 2 +- doc/src/sgml/ref/alter_user.sgml | 8 ++++---- src/backend/parser/gram.y | 14 +++++++++++--- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/doc/src/sgml/ref/alter_role.sgml b/doc/src/sgml/ref/alter_role.sgml index b0981fdd5d5..e4428fc9396 100644 --- a/doc/src/sgml/ref/alter_role.sgml +++ b/doc/src/sgml/ref/alter_role.sgml @@ -38,7 +38,7 @@ ALTER ROLE name [ [ WITH ] 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 diff --git a/doc/src/sgml/ref/alter_user.sgml b/doc/src/sgml/ref/alter_user.sgml index 7588f636ed2..2302ce3a65c 100644 --- a/doc/src/sgml/ref/alter_user.sgml +++ b/doc/src/sgml/ref/alter_user.sgml @@ -38,10 +38,10 @@ ALTER USER name [ [ WITH ] 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 diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index f8bb66501ad..563dc91a869 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -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; } ;