CREATE OR REPLACE FUNCTION s13.usp_odbc_datatypes(ref refcursor)
 RETURNS refcursor
 LANGUAGE plpgsql
AS $function$
BEGIN

OPEN ref FOR
SELECT
    t."id",
    t."bigint",
    CAST(t."bit3" AS char(3)) AS "bit3",
    t."boolean",
    CAST(t."box" AS varchar) AS "box",
    t."bytea",
    t."char",
    t."char36",
    CAST(t."cidr" AS varchar) AS "cidr",
    CAST(t."circle" AS varchar) AS "circle",
    t."date",
    t."double_precision",
    CAST(t."inet" AS varchar) AS "inet",
    t."integer",
    CAST(t."interval" AS varchar) AS "interval",
    CAST(t."json" AS varchar) AS "json",
    CAST(t."jsonb" AS varchar) AS "jsonb",
    CAST(t."line" AS varchar) AS "line",
    CAST(t."lseg" AS varchar) AS "lseg",
    CAST(t."macaddr" AS varchar) AS "macaddr",
    CAST(t."money" AS numeric(31,2)) AS "money",
    CAST(t."money15" AS numeric(31,2)) AS "money15",
    t."numeric",
    t."numeric152",
    t."real",
    CAST(t."path" AS varchar) AS "path",
    CAST(t."point" AS varchar) AS "point",
    CAST(t."polygon" AS varchar) AS "polygon",
    t."text",
    CAST(t."time" AS varchar) AS "time",
    t."time0",
    CAST(t."time3" AS varchar) AS "time3",
    CAST(t."timetz" AS varchar) AS "timetz",
    CAST(t."timetz0" AS varchar) AS "timetz0",
    CAST(t."timetz3" AS varchar) AS "timetz3",
    CAST(t."timestamp" AS varchar) AS "timestamp",
    CAST(t."timestamp0" AS varchar) AS "timestamp0",
    CAST(t."timestamp3" AS varchar) AS "timestamp3",
    TO_CHAR(t."timestamptz", 'YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM') AS "timestamptz",
    TO_CHAR(t."timestamptz0", 'YYYY-MM-DD HH24:MI:SS TZH:TZM') AS "timestamptz0",
    TO_CHAR(t."timestamptz3", 'YYYY-MM-DD HH24:MI:SS.FF3 TZH:TZM') AS "timestamptz3",
    t."uuid",
    CAST(t."varbit" AS varchar) AS "varbit",
    t."varchar",
    t."xml"
FROM
    s13.datatypes t;

RETURN ref;
END
$function$