Uso de tipos de retorno personalizados em um loop FOR no plpgsql
O código a seguir que eu uso retorna um número inteiro1
:
CREATE TYPE my_test AS (
foo Integer
);
CREATE FUNCTION foo_out()
RETURNS SETOF Integer AS
$
BEGIN
RETURN QUERY
SELECT 1 as foo;
END
$
LANGUAGE plpgsql;
CREATE FUNCTION foo1()
RETURNS SETOF my_test
AS $
DECLARE
x my_test;
BEGIN
FOR x IN
SELECT foo_out()
LOOP
RETURN NEXT x;
END LOOP;
END;
$
LA,NGUAGE 'plpgsql';
select * from foo1();
Mas por que o mesmo código retorna:
ERROR: invalid input syntax for integer: (1)
se eu alterar o tipo de retorno para:
CREATE FUNCTION foo_out()
RETURNS SETOF my_test
O que também deve ser uminteger
!? Pode ser que o sistema seja diferente entre o tipo inteiro e um tipo personalizado que inclua um número inteiro. O que deve ser alterado para que o uso de tipos personalizados seja possível aqui?