From 979766c0afceb95c4b96323b57a0f6edf8472612 Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Wed, 6 Nov 2019 12:54:17 +0900 Subject: [PATCH] Correct the command tags for ALTER ... RENAME COLUMN. Previously ALTER MATERIALIZED VIEW / FOREIGN TABLE ... RENAME COLUMN ... returned "ALTER TABLE" as a command tag. This commit fixes them so that they return "ALTER MATERIALIZED VIEW" and "ALTER FOREIGN TABLE" as command tags, respectively. This issue exists in all supported versions, but we don't back-patch this because it's not enough of a bug to justify taking any compatibility risks for. Otherwise, the back-patch would cause minor version update to break, for example, the existing event trigger functions using TG_TAG. Author: Fujii Masao Reviewed-by: Ibrar Ahmed Discussion: https://postgr.es/m/CAHGQGwGUaC03FFdTFoHsCuDrrNvFvNVQ6xyd40==P25WvuBJjg@mail.gmail.com --- src/backend/tcop/utility.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index f2269ad35c..e984545780 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -2399,7 +2399,14 @@ CreateCommandTag(Node *parsetree) break; case T_RenameStmt: - tag = AlterObjectTypeCommandTag(((RenameStmt *) parsetree)->renameType); + /* + * When the column is renamed, the command tag is created + * from its relation type + */ + tag = AlterObjectTypeCommandTag( + ((RenameStmt *) parsetree)->renameType == OBJECT_COLUMN ? + ((RenameStmt *) parsetree)->relationType : + ((RenameStmt *) parsetree)->renameType); break; case T_AlterObjectDependsStmt: