Função Postgres retornando um registro enquanto eu tenho muitos registros?
Eu tenho muitos registros que minha consulta simples retorna, mas quando eu uso a função, ele me fornece o primeiro registro,
primeiro, eu crio meu próprio tipo de dados usando,
CREATE TYPE my_type (usr_id integer , name varchar(30));
e minha função é
CREATE OR REPLACE function test() returns my_type as $
declare rd varchar := '21';
declare personphone varchar := NULL;
declare result my_type;
declare SQL VARCHAR(300):=null;
DECLARE
radiophone_clause text = '';
BEGIN
IF rd IS NOT NULL then
radiophone_clause = 'and pp.radio_phone = '|| quote_literal(rd);
END IF;
IF personphone IS NOT NULL then
radiophone_clause = radiophone_clause|| 'and pp.person_phone = '|| quote_literal(personphone);
END IF;
radiophone_clause = substr(radiophone_clause, 5, length(radiophone_clause)- 4);
EXECUTE format('select pt.id,pt.name from product_template pt inner join product_product pp on pt.id=pp.id where %s ;', radiophone_clause) into result.id,result.name ;
return result;
END;
$ LANGUAGE plpgsql;
nesta função, estou retornando meu_tipo que retorna apenas a primeira linha como retornar mais de uma linha,