>From 4de9050c55183b6c7f12a0d399b332ae14a97a35 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Tue, 6 May 2014 17:22:13 -0400 Subject: [PATCH 24/42] deparse: support ALTER THING OWNER TO --- src/backend/tcop/deparse_utility.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/backend/tcop/deparse_utility.c b/src/backend/tcop/deparse_utility.c index 4008db2..002c65b 100644 --- a/src/backend/tcop/deparse_utility.c +++ b/src/backend/tcop/deparse_utility.c @@ -3849,6 +3849,29 @@ deparse_AlterEnumStmt(Oid objectId, Node *parsetree) } static ObjTree * +deparse_AlterOwnerStmt(Oid objectId, Node *parsetree) +{ + AlterOwnerStmt *node = (AlterOwnerStmt *) parsetree; + ObjTree *ownerStmt; + ObjectAddress addr; + char *fmt; + + fmt = psprintf("ALTER %s %%{identity}s OWNER TO %%{newname}I", + stringify_objtype(node->objectType)); + ownerStmt = new_objtree_VA(fmt, 0); + append_string_object(ownerStmt, "newname", node->newowner); + + addr.classId = get_objtype_catalog_oid(node->objectType); + addr.objectId = objectId; + addr.objectSubId = 0; + + append_string_object(ownerStmt, "identity", + getObjectIdentity(&addr)); + + return ownerStmt; +} + +static ObjTree * deparse_CreateConversion(Oid objectId, Node *parsetree) { HeapTuple conTup; @@ -4607,7 +4630,7 @@ deparse_simple_command(StashedCommand *cmd) break; case T_AlterOwnerStmt: - command = NULL; + command = deparse_AlterOwnerStmt(objectId, parsetree); break; case T_CommentStmt: -- 2.1.4