I've just executed this query directly against the DB without JOOQ,
and it returns the SETOF BIGINT function, albeit classified as a table
valued function (for which it generated a TableImpl class, as opposed
to an AbstractRoutine class):

SELECT
    "tables"."table_schema",
    "tables"."table_name",
    "tables"."specific_name",
    "tables"."table_valued_function",
    "tables"."description"
FROM
    (
    (
        SELECT
            "information_schema"."tables"."table_schema",
            "information_schema"."tables"."table_name",
            "information_schema"."tables"."table_name" AS "specific_name",
            false                                      AS
"table_valued_function",
            "pg_catalog"."pg_description"."description"
        FROM
            "information_schema"."tables"
        JOIN
            "pg_catalog"."pg_namespace"
        ON
            "information_schema"."tables"."table_schema" =
"pg_catalog"."pg_namespace"."nspname"
        JOIN
            "pg_catalog"."pg_class"
        ON
            (
                "pg_catalog"."pg_class"."relname" =
"information_schema"."tables"."table_name"
            AND "pg_catalog"."pg_class"."relnamespace" =
"pg_catalog"."pg_namespace".oid)
        LEFT OUTER JOIN
            "pg_catalog"."pg_description"
        ON
            (
                "pg_catalog"."pg_description"."objoid" =
"pg_catalog"."pg_class".oid
            AND "pg_catalog"."pg_description"."objsubid" = 0)
        WHERE
            "information_schema"."tables"."table_schema" IN ('public'))
UNION ALL
    (
        SELECT
            "information_schema"."routines"."routine_schema",
            "information_schema"."routines"."routine_name",
            "information_schema"."routines"."specific_name",
            true AS "table_valued_function",
            ''
        FROM
            "information_schema"."routines"
        JOIN
            "pg_catalog"."pg_namespace"
        ON
            "information_schema"."routines"."specific_schema" =
            "pg_catalog"."pg_namespace"."nspname"
        JOIN
            "pg_catalog"."pg_proc"
        ON
            (
                "pg_catalog"."pg_proc"."pronamespace" =
"pg_catalog"."pg_namespace".oid
            AND ((
                        "pg_catalog"."pg_proc"."proname" || '_') ||
CAST("pg_catalog"."pg_proc".oid
                    AS VARCHAR)) =
"information_schema"."routines"."specific_name")
        WHERE
            (
                "information_schema"."routines"."routine_schema" IN ('public')
            AND "pg_catalog"."pg_proc"."proretset"))) AS "tables"
ORDER BY
    1 ASC,
    2 ASC;

On Mon, May 4, 2015 at 3:24 PM, Ben Hood <[email protected]> wrote:
> On Mon, May 4, 2015 at 3:12 PM, Ben Hood <[email protected]> wrote:
>> What is the PG_PROC.PRORETSET flag used for?
>
> In my schema, the following metadata exists:
>
> SELECT p.proname, oidvectortypes(p.proargtypes), p.proretset, p.prorettype
> FROM pg_proc p INNER JOIN pg_namespace ns ON (p.pronamespace = ns.oid)
> WHERE ns.nspname = 'public';
>
> proname        oidvectortypes                 proretset  prorettype
> -------------      -------------------------           ---------
> ----------
> set_caller_id  bigint, character varying  true          20
>
> Not sure how much this helps in this case.

-- 
You received this message because you are subscribed to the Google Groups "jOOQ 
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to