Обсуждение: BUG #5920: SQL function are probably "overoptimized"
The following bug has been logged online:
Bug reference: 5920
Logged by: Matyas Novak
Email address: logik@centrum.cz
PostgreSQL version: 9.0.1
Operating system: linux
Description: SQL function are probably "overoptimized"
Details:
create table a(a integer);
create or replace function f1 (a varchar) returns void volatile language
plpgsql as
$$
begin
insert into a values(1);
end
$$;
create or replace function f2 () returns void volatile language sql as
$$
select f1(tmp) from (values ('aa'), ('bb')) _tmp(tmp);
$$;
select f2();
As a result, only one row appears in table a, although two should be
there...
On Tue, Mar 8, 2011 at 12:49, Matyas Novak <logik@centrum.cz> wrote:
> Bug reference: =C2=A0 =C2=A0 =C2=A05920
>
> create or replace function f2 () returns void volatile language sql as
> $$
> =C2=A0select f1(tmp) from (values ('aa'), ('bb')) _tmp(tmp);
> $$;
> select f2();
>
> As a result, only one row appears in table a, although two should be
> there...
It should be not a bug.
You probably need to define f2 as "returns SETOF void" function.
--=20
Itagaki Takahiro