Функция Postgres, возвращающая одну запись, в то время как у меня много записей?

У меня есть много записей, которые возвращает мой простой запрос, но когда я использую функцию, она просто дает мне первую запись,

во-первых, я создаю свой собственный тип данных, используя,

CREATE TYPE my_type (usr_id integer , name varchar(30));

и моя функция,

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;

в этой функции я возвращаю my_type, который возвращает только первую строку, как вернуть более одной строки,

Ответы на вопрос(2)

Ваш ответ на вопрос