>From 23e42b53289adc911e7158f1e0ebd4ad98c65fd2 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Tue, 6 May 2014 17:22:13 -0400 Subject: [PATCH 23/27] 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 330f33f..740956f 100644 --- a/src/backend/tcop/deparse_utility.c +++ b/src/backend/tcop/deparse_utility.c @@ -3646,6 +3646,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; @@ -4296,7 +4319,7 @@ deparse_simple_command(StashedCommand *cmd) break; case T_AlterOwnerStmt: - command = NULL; + command = deparse_AlterOwnerStmt(objectId, parsetree); break; case T_CommentStmt: -- 1.9.1