I’ve googled this one and tried everything (except the correct solution of course) until tears are starting to flow. Please help. Complete example below. 7.4.13 on suse-64 x86
create table mytable (mystring varchar, myreal real);
insert into mytable (mystring,myreal) values ('abc',1.23);
insert into mytable (mystring,myreal) values ('def',4.56);
create type myrec as (mystring varchar, myreal real);
create or replace function myfunc() returns setof myrec as '
declare
crec myrec;
begin
for crec in select * from mytable loop
return next crec;
end loop;
return;
end;
' language 'plpgsql';
stdb=# select myfunc();
ERROR: set-valued function called in context that cannot accept a set
CONTEXT: PL/pgSQL function "myfunc" line 6 at return next