aboutsummaryrefslogtreecommitdiff
path: root/src/backend/tcop/utility.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/tcop/utility.c')
-rw-r--r--src/backend/tcop/utility.c69
1 files changed, 45 insertions, 24 deletions
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index d12cf0d750f..a3e727472ab 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.219 2004/06/18 06:13:38 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.220 2004/06/25 21:55:57 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -236,14 +236,14 @@ check_xact_readonly(Node *parsetree)
switch (nodeTag(parsetree))
{
case T_AlterDatabaseSetStmt:
- case T_AlterDbOwnerStmt:
case T_AlterDomainStmt:
case T_AlterGroupStmt:
+ case T_AlterOwnerStmt:
case T_AlterSeqStmt:
case T_AlterTableStmt:
- case T_RenameStmt:
case T_AlterUserStmt:
case T_AlterUserSetStmt:
+ case T_RenameStmt:
case T_CommentStmt:
case T_DefineStmt:
case T_CreateCastStmt:
@@ -527,6 +527,10 @@ ProcessUtility(Node *parsetree,
ExecRenameStmt((RenameStmt *) parsetree);
break;
+ case T_AlterOwnerStmt:
+ ExecAlterOwnerStmt((AlterOwnerStmt *) parsetree);
+ break;
+
case T_AlterTableStmt:
AlterTable((AlterTableStmt *) parsetree);
break;
@@ -567,16 +571,6 @@ ProcessUtility(Node *parsetree,
stmt->name,
stmt->behavior);
break;
- case 'U': /* OWNER TO */
- /* check that we are the superuser */
- if (!superuser())
- ereport(ERROR,
- (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
- errmsg("must be superuser to alter owner")));
- /* get_usesysid raises an error if no such user */
- AlterTypeOwner(stmt->typename,
- get_usesysid(stmt->name));
- break;
default: /* oops */
elog(ERROR, "unrecognized alter domain type: %d",
(int) stmt->subtype);
@@ -689,13 +683,6 @@ ProcessUtility(Node *parsetree,
createdb((CreatedbStmt *) parsetree);
break;
- case T_AlterDbOwnerStmt:
- {
- AlterDbOwnerStmt *stmt = (AlterDbOwnerStmt *) parsetree;
- AlterDatabaseOwner(stmt->dbname, stmt->uname);
- }
- break;
-
case T_AlterDatabaseSetStmt:
AlterDatabaseSet((AlterDatabaseSetStmt *) parsetree);
break;
@@ -1258,6 +1245,44 @@ CreateCommandTag(Node *parsetree)
}
break;
+ case T_AlterOwnerStmt:
+ switch (((AlterOwnerStmt *) parsetree)->objectType)
+ {
+ case OBJECT_AGGREGATE:
+ tag = "ALTER AGGREGATE";
+ break;
+ case OBJECT_CONVERSION:
+ tag = "ALTER CONVERSION";
+ break;
+ case OBJECT_DATABASE:
+ tag = "ALTER DATABASE";
+ break;
+ case OBJECT_DOMAIN:
+ tag = "ALTER DOMAIN";
+ break;
+ case OBJECT_FUNCTION:
+ tag = "ALTER FUNCTION";
+ break;
+ case OBJECT_OPERATOR:
+ tag = "ALTER OPERATOR";
+ break;
+ case OBJECT_OPCLASS:
+ tag = "ALTER OPERATOR CLASS";
+ break;
+ case OBJECT_SCHEMA:
+ tag = "ALTER SCHEMA";
+ break;
+ case OBJECT_TABLESPACE:
+ tag = "ALTER TABLESPACE";
+ break;
+ case OBJECT_TYPE:
+ tag = "ALTER TYPE";
+ break;
+ default:
+ tag = "ALTER TABLE";
+ }
+ break;
+
case T_AlterTableStmt:
tag = "ALTER TABLE";
break;
@@ -1335,10 +1360,6 @@ CreateCommandTag(Node *parsetree)
tag = "CREATE DATABASE";
break;
- case T_AlterDbOwnerStmt:
- tag = "ALTER DATABASE";
- break;
-
case T_AlterDatabaseSetStmt:
tag = "ALTER DATABASE";
break;