summaryrefslogtreecommitdiff
path: root/src/backend/parser
diff options
context:
space:
mode:
authorBruce Momjian2004-05-26 13:57:04 +0000
committerBruce Momjian2004-05-26 13:57:04 +0000
commitcfbfdc557d166ec559668d18d9769544f3c4fbbc (patch)
treeb487d06389fcb3a304524c2cf0adfc769348c0ae /src/backend/parser
parentd0b4399d81f39decccb23fa38f772b71b51bf96a (diff)
This patch implement the TODO [ALTER DATABASE foo OWNER TO bar].
It was necessary to touch in grammar and create a new node to make home to the new syntax. The command is also supported in E CPG. Doc updates are attached too. Only superusers can change the owner of the database. New owners don't need any aditional privileges. Euler Taveira de Oliveira
Diffstat (limited to 'src/backend/parser')
-rw-r--r--src/backend/parser/gram.y15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 654341ddfe8..b20f92ba7b2 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.455 2004/05/26 04:41:29 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.456 2004/05/26 13:56:51 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -152,6 +152,7 @@ static void doNegateFloat(Value *v);
VariableResetStmt VariableSetStmt VariableShowStmt
ViewStmt CheckPointStmt CreateConversionStmt
DeallocateStmt PrepareStmt ExecuteStmt
+ AlterDbOwnerStmt
%type <node> select_no_parens select_with_parens select_clause
simple_select
@@ -486,7 +487,8 @@ stmtmulti: stmtmulti ';' stmt
;
stmt :
- AlterDatabaseSetStmt
+ AlterDbOwnerStmt
+ | AlterDatabaseSetStmt
| AlterDomainStmt
| AlterGroupStmt
| AlterSeqStmt
@@ -3918,6 +3920,15 @@ opt_equal: '=' {}
*
*****************************************************************************/
+AlterDbOwnerStmt: ALTER DATABASE database_name OWNER TO UserId
+ {
+ AlterDbOwnerStmt *n = makeNode(AlterDbOwnerStmt);
+ n->dbname = $3;
+ n->uname = $6;
+ $$ = (Node *)n;
+ }
+ ;
+
AlterDatabaseSetStmt:
ALTER DATABASE database_name SET set_rest
{