diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c
index 4accf767bbf03555dcfee673fc39a480ea5acd2c..dbbb2d3f88ab9aceebe9e0fd6ea3995cc4f427fd 100644
--- a/src/backend/commands/functioncmds.c
+++ b/src/backend/commands/functioncmds.c
@@ -1740,7 +1740,7 @@ check_transform_function(Form_pg_proc procstruct)
 /*
  * CREATE TRANSFORM
  */
-Oid
+ObjectAddress
 CreateTransform(CreateTransformStmt *stmt)
 {
 	Oid			typeid;
@@ -1938,7 +1938,7 @@ CreateTransform(CreateTransformStmt *stmt)
 
 	heap_close(relation, RowExclusiveLock);
 
-	return transformid;
+	return myself;
 }
 
 
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index 7db9f96fdf717ce1f26394950e4518f685a3ca7b..0dabcc130e013d779e947fb69b55fae21daf6776 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -1438,7 +1438,7 @@ ProcessUtilitySlow(Node *parsetree,
 				break;
 
 			case T_CreateTransformStmt:
-				CreateTransform((CreateTransformStmt *) parsetree);
+				address = CreateTransform((CreateTransformStmt *) parsetree);
 				break;
 
 			case T_AlterOpFamilyStmt:
diff --git a/src/include/commands/defrem.h b/src/include/commands/defrem.h
index dcb6c082c5271485c382053ce97e93168bce3b8f..9b81c16d8239107c7b7aa40ec210136edbef9feb 100644
--- a/src/include/commands/defrem.h
+++ b/src/include/commands/defrem.h
@@ -51,7 +51,7 @@ extern void SetFunctionArgType(Oid funcOid, int argIndex, Oid newArgType);
 extern ObjectAddress AlterFunction(AlterFunctionStmt *stmt);
 extern ObjectAddress CreateCast(CreateCastStmt *stmt);
 extern void DropCastById(Oid castOid);
-extern Oid	CreateTransform(CreateTransformStmt *stmt);
+extern ObjectAddress CreateTransform(CreateTransformStmt *stmt);
 extern void DropTransformById(Oid transformOid);
 extern void IsThereFunctionInNamespace(const char *proname, int pronargs,
 						   oidvector *proargtypes, Oid nspOid);
diff --git a/src/test/modules/test_ddl_deparse/Makefile b/src/test/modules/test_ddl_deparse/Makefile
index 13b985a296364733240cffd8e95287b448947016..8ea6f39afd2ca3d42f5a3617ea65901dccf4f4b3 100644
--- a/src/test/modules/test_ddl_deparse/Makefile
+++ b/src/test/modules/test_ddl_deparse/Makefile
@@ -15,6 +15,7 @@ REGRESS = test_ddl_deparse \
 	create_domain \
 	create_sequence_1 \
 	create_table \
+	create_transform \
 	alter_table \
 	create_view \
 	create_trigger \
diff --git a/src/test/modules/test_ddl_deparse/expected/create_transform.out b/src/test/modules/test_ddl_deparse/expected/create_transform.out
new file mode 100644
index 0000000000000000000000000000000000000000..0d1cc360f4ed1c29638447aff0617f9d8e328380
--- /dev/null
+++ b/src/test/modules/test_ddl_deparse/expected/create_transform.out
@@ -0,0 +1,13 @@
+--
+-- CREATE_TRANSFORM
+--
+-- Create a dummy transform
+-- The function FROM SQL should have internal as single argument as well
+-- as return type. The function TO SQL should have as single argument
+-- internal and as return argument the datatype of the transform done.
+-- pl/plpgsql does not authorize the use of internal as data type.
+CREATE TRANSFORM FOR int LANGUAGE SQL (
+    FROM SQL WITH FUNCTION varchar_transform(internal),
+    TO SQL WITH FUNCTION int4recv(internal));
+NOTICE:  DDL test: type simple, tag CREATE TRANSFORM
+DROP TRANSFORM FOR int LANGUAGE SQL;
diff --git a/src/test/modules/test_ddl_deparse/sql/create_transform.sql b/src/test/modules/test_ddl_deparse/sql/create_transform.sql
new file mode 100644
index 0000000000000000000000000000000000000000..096870233f821f411edaf1291de41b0a00354f79
--- /dev/null
+++ b/src/test/modules/test_ddl_deparse/sql/create_transform.sql
@@ -0,0 +1,14 @@
+--
+-- CREATE_TRANSFORM
+--
+
+-- Create a dummy transform
+-- The function FROM SQL should have internal as single argument as well
+-- as return type. The function TO SQL should have as single argument
+-- internal and as return argument the datatype of the transform done.
+-- pl/plpgsql does not authorize the use of internal as data type.
+CREATE TRANSFORM FOR int LANGUAGE SQL (
+    FROM SQL WITH FUNCTION varchar_transform(internal),
+    TO SQL WITH FUNCTION int4recv(internal));
+
+DROP TRANSFORM FOR int LANGUAGE SQL;