The following bug has been logged on the website:
Bug reference: 6336
Logged by: James Robinson
Email address: jlrobins@socialserve.com
PostgreSQL version: 9.1.2
Operating system: OSX
Description:=20=20=20=20=20=20=20=20
calling into generate_series() within a 'returns int' (singular) SQL stored
function doesn't raise error (plpgsql does):
-- SQL function elides over fact that generate_series() is a SRF
create function foo_sql()
returns int as
$$
select * from generate_series(1,5)
$$ language sql stable;
select foo_sql();
/*
whoa --- returns, and just one int.
foo
-----
1
*/
create function foo_plpgsql()
returns int as
$$
declare
retvar int;
begin
retvar :=3D generate_series(1,5);
return retvar;
end;
$$ language plpgsql stable;
-- properly fails --- ERROR: query "SELECT generate_series(1,5)" returned
more than one row
select foo_plpgsql();