1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-10 17:42:29 +03:00

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
This commit is contained in:
Bruce Momjian
2004-05-26 13:57:04 +00:00
parent d0b4399d81
commit cfbfdc557d
11 changed files with 128 additions and 14 deletions

View File

@@ -15,7 +15,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.282 2004/05/26 04:41:18 neilc Exp $
* $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.283 2004/05/26 13:56:47 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2068,6 +2068,17 @@ _copyCreatedbStmt(CreatedbStmt *from)
return newnode;
}
static AlterDbOwnerStmt *
_copyAlterDbOwnerStmt(AlterDbOwnerStmt *from)
{
AlterDbOwnerStmt *newnode = makeNode(AlterDbOwnerStmt);
COPY_STRING_FIELD(dbname);
COPY_STRING_FIELD(uname);
return newnode;
}
static AlterDatabaseSetStmt *
_copyAlterDatabaseSetStmt(AlterDatabaseSetStmt *from)
{
@@ -2860,6 +2871,9 @@ copyObject(void *from)
case T_CreatedbStmt:
retval = _copyCreatedbStmt(from);
break;
case T_AlterDbOwnerStmt:
retval = _copyAlterDbOwnerStmt(from);
break;
case T_AlterDatabaseSetStmt:
retval = _copyAlterDatabaseSetStmt(from);
break;

View File

@@ -18,7 +18,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.221 2004/05/26 04:41:19 neilc Exp $
* $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.222 2004/05/26 13:56:47 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1099,6 +1099,15 @@ _equalCreatedbStmt(CreatedbStmt *a, CreatedbStmt *b)
return true;
}
static bool
_equalAlterDbOwnerStmt(AlterDbOwnerStmt *a, AlterDbOwnerStmt *b)
{
COMPARE_STRING_FIELD(dbname);
COMPARE_STRING_FIELD(uname);
return true;
}
static bool
_equalAlterDatabaseSetStmt(AlterDatabaseSetStmt *a, AlterDatabaseSetStmt *b)
{
@@ -2005,6 +2014,9 @@ equal(void *a, void *b)
case T_CreatedbStmt:
retval = _equalCreatedbStmt(a, b);
break;
case T_AlterDbOwnerStmt:
retval = _equalAlterDbOwnerStmt(a, b);
break;
case T_AlterDatabaseSetStmt:
retval = _equalAlterDatabaseSetStmt(a, b);
break;