Mira aqui tienes un ejemplo simple de como se crea una funcion en postgres
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION tablasMultiplicar(x INTEGER ,y INTEGER, OUT Multiplicando INTEGER,OUT Multiplicador INTEGER,OUT ProductoTotal INTEGER) RETURNS SETOF RECORD AS $_$
DECLARE
i INTEGER;
j INTEGER;
total INTEGER;
matriz INTEGER[][];
use_sql TEXT;
BEGIN
FOR i IN 1..x LOOP
FOR j IN 1..y LOOP
matriz[i]= i;
matriz[j]= j;
total:= matriz[i] * matriz[j];
use_sql:='select '||matriz[i]||'as Multiplicando,'||matriz[j]||'as Multiplicador, '||total||'as ProductoTotal';
END LOOP;
END LOOP;
RETURN QUERY EXECUTE use_sql;
END
$_$
LANGUAGE plpgsql;
SELECT * FROM tablasMultiplicar(6,3);