From 35508d1cca1630e40b157d67b427174c3e1999aa Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 1 Aug 2005 04:03:59 +0000 Subject: Add ALTER object SET SCHEMA capability for a limited but useful set of object kinds (tables, functions, types). Documentation is not here yet. Original code by Bernd Helmle, extensive rework by Bruce Momjian and Tom Lane. --- src/backend/tcop/utility.c | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) (limited to 'src/backend/tcop/utility.c') diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index 546aa49c2d0..10256bbb327 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.242 2005/07/31 17:19:19 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.243 2005/08/01 04:03:57 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -281,6 +281,7 @@ check_xact_readonly(Node *parsetree) case T_AlterFunctionStmt: case T_AlterRoleStmt: case T_AlterRoleSetStmt: + case T_AlterObjectSchemaStmt: case T_AlterOwnerStmt: case T_AlterSeqStmt: case T_AlterTableStmt: @@ -625,6 +626,10 @@ ProcessUtility(Node *parsetree, ExecRenameStmt((RenameStmt *) parsetree); break; + case T_AlterObjectSchemaStmt: + ExecAlterObjectSchemaStmt((AlterObjectSchemaStmt *) parsetree); + break; + case T_AlterOwnerStmt: ExecAlterOwnerStmt((AlterOwnerStmt *) parsetree); break; @@ -1358,6 +1363,10 @@ CreateCommandTag(Node *parsetree) case OBJECT_SCHEMA: tag = "ALTER SCHEMA"; break; + case OBJECT_COLUMN: + case OBJECT_TABLE: + tag = "ALTER TABLE"; + break; case OBJECT_TABLESPACE: tag = "ALTER TABLESPACE"; break; @@ -1365,10 +1374,38 @@ CreateCommandTag(Node *parsetree) tag = "ALTER TRIGGER"; break; default: - tag = "ALTER TABLE"; + tag = "???"; + break; } break; + case T_AlterObjectSchemaStmt: + switch (((AlterObjectSchemaStmt *) parsetree)->objectType) + { + case OBJECT_AGGREGATE: + tag = "ALTER AGGREGATE"; + break; + case OBJECT_DOMAIN: + tag = "ALTER DOMAIN"; + break; + case OBJECT_FUNCTION: + tag = "ALTER FUNCTION"; + break; + case OBJECT_SEQUENCE: + tag = "ALTER SEQUENCE"; + break; + case OBJECT_TABLE: + tag = "ALTER TABLE"; + break; + case OBJECT_TYPE: + tag = "ALTER TYPE"; + break; + default: + tag = "???"; + break; + } + break; + case T_AlterOwnerStmt: switch (((AlterOwnerStmt *) parsetree)->objectType) { @@ -1403,7 +1440,8 @@ CreateCommandTag(Node *parsetree) tag = "ALTER TYPE"; break; default: - tag = "ALTER TABLE"; + tag = "???"; + break; } break; -- cgit v1.2.3