При връщане на SETOF record
изходните колони не са въведени и не са именувани. Следователно този формуляр не може да се използва директно в клауза FROM, сякаш е подзаявка или таблица.
Тоест при издаване:
SELECT * from events_by_type_2('social');
получаваме тази грешка:
Въпреки това, той може да бъде "прехвърлен" в правилните типове колони от SQL повикващия. Този формуляр работи:
SELECT * from events_by_type_2('social') as (id bigint, name text);
и води до:
id | name ----+---------------- 1 | Dance Party 2 | Happy Hour ...
Поради тази причина SETOF record
се счита за по-малко практично. Трябва да се използва само когато типовете колони на резултатите не са известни предварително.