Pg 9.6.24 (Yes, I know it's EOL.)

This simple "programming example" function works perfectly. However, it requires me to create the TYPE "foo".

CREATE TYPE foo AS (tab_name TEXT, num_pages INT);
CREATE FUNCTION dba.blarge()
    RETURNS SETOF foo
    LANGUAGE plpgsql
    AS
$$
    DECLARE
        ret foo;
        bar CURSOR FOR
            select relname::text as table_name, relpages
            from pg_class where relkind = 'r'
            order by 1;
    BEGIN
        FOR i IN bar LOOP
            SELECT i.table_name, i.relpages INTO ret;
            RETURN NEXT ret;
        END LOOP;
    END;
$$;

Is there a way to define the SETOF record on the fly, like you do with RETURNS TABLE (f1 type1, f2 type2)?

--
Born in Arizona, moved to Babylonia.


Reply via email to