return alterEnum;
}
+static ObjTree *
+deparse_CreateConversion(Oid objectId, Node *parsetree)
+{
+ HeapTuple conTup;
+ Relation convrel;
+ Form_pg_conversion conForm;
+ ObjTree *ccStmt;
+
+ convrel = heap_open(ConversionRelationId, AccessShareLock);
+ conTup = get_catalog_object_by_oid(convrel, objectId);
+ if (!HeapTupleIsValid(conTup))
+ elog(ERROR, "cache lookup failed for conversion with OID %u", objectId);
+ conForm = (Form_pg_conversion) GETSTRUCT(conTup);
+
+ ccStmt = new_objtree_VA("CREATE %{default}s CONVERSION %{identity}D FOR "
+ "%{source}L TO %{dest}L FROM %{function}D", 0);
+
+ append_string_object(ccStmt, "default",
+ conForm->condefault ? "DEFAULT" : "");
+ append_object_object(ccStmt, "identity",
+ new_objtree_for_qualname(conForm->connamespace,
+ NameStr(conForm->conname)));
+ append_string_object(ccStmt, "source", (char *)
+ pg_encoding_to_char(conForm->conforencoding));
+ append_string_object(ccStmt, "dest", (char *)
+ pg_encoding_to_char(conForm->contoencoding));
+ append_object_object(ccStmt, "function",
+ new_objtree_for_qualname_id(ProcedureRelationId,
+ conForm->conproc));
+
+ heap_close(convrel, AccessShareLock);
+
+ return ccStmt;
+}
+
static ObjTree *
deparse_CreateOpFamily(Oid objectId, Node *parsetree)
{
break;
case T_CreateConversionStmt:
- elog(ERROR, "unimplemented deparse of %s", CreateCommandTag(parsetree));
+ command = deparse_CreateConversion(objectId, parsetree);
break;
case T_CreateCastStmt: