diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index c6faa6619d..16699a86ef 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -1952,7 +1952,7 @@ UtilityContainsQuery(Node *parsetree) * This covers most cases where ALTER is used with an ObjectType enum. */ static const char * -AlterObjectTypeCommandTag(ObjectType objtype) +AlterObjectTypeCommandTag(ObjectType objtype, ObjectType subtype) { const char *tag; @@ -1971,7 +1971,26 @@ AlterObjectTypeCommandTag(ObjectType objtype) tag = "ALTER COLLATION"; break; case OBJECT_COLUMN: - tag = "ALTER TABLE"; + { + switch (subtype) + { + case OBJECT_TABLE: + tag = "ALTER TABLE"; + break; + case OBJECT_FOREIGN_TABLE: + tag = "ALTER FOREIGN TABLE"; + break; + case OBJECT_VIEW: + tag = "ALTER VIEW"; + break; + case OBJECT_MATVIEW: + tag = "ALTER MATERIALIZED VIEW"; + break; + default: + tag = "ALTER TABLE"; + break; + } + } break; case OBJECT_CONVERSION: tag = "ALTER CONVERSION"; @@ -2405,27 +2424,27 @@ CreateCommandTag(Node *parsetree) break; case T_RenameStmt: - tag = AlterObjectTypeCommandTag(((RenameStmt *) parsetree)->renameType); + tag = AlterObjectTypeCommandTag(((RenameStmt *) parsetree)->renameType, ((RenameStmt *) parsetree)->relationType); break; case T_AlterObjectDependsStmt: - tag = AlterObjectTypeCommandTag(((AlterObjectDependsStmt *) parsetree)->objectType); + tag = AlterObjectTypeCommandTag(((AlterObjectDependsStmt *) parsetree)->objectType, 0); break; case T_AlterObjectSchemaStmt: - tag = AlterObjectTypeCommandTag(((AlterObjectSchemaStmt *) parsetree)->objectType); + tag = AlterObjectTypeCommandTag(((AlterObjectSchemaStmt *) parsetree)->objectType, 0); break; case T_AlterOwnerStmt: - tag = AlterObjectTypeCommandTag(((AlterOwnerStmt *) parsetree)->objectType); + tag = AlterObjectTypeCommandTag(((AlterOwnerStmt *) parsetree)->objectType, 0); break; case T_AlterTableMoveAllStmt: - tag = AlterObjectTypeCommandTag(((AlterTableMoveAllStmt *) parsetree)->objtype); + tag = AlterObjectTypeCommandTag(((AlterTableMoveAllStmt *) parsetree)->objtype, 0); break; case T_AlterTableStmt: - tag = AlterObjectTypeCommandTag(((AlterTableStmt *) parsetree)->relkind); + tag = AlterObjectTypeCommandTag(((AlterTableStmt *) parsetree)->relkind, 0); break; case T_AlterDomainStmt: