BUG #5920: SQL function are probably "overoptimized"

Started by Matyas Novakabout 15 years ago2 messagesbugs
Jump to latest
#1Matyas Novak
logik@centrum.cz

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...

#2Itagaki Takahiro
itagaki.takahiro@gmail.com
In reply to: Matyas Novak (#1)
Re: BUG #5920: SQL function are probably "overoptimized"

On Tue, Mar 8, 2011 at 12:49, Matyas Novak <logik@centrum.cz> wrote:

Bug reference:      5920

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...

It should be not a bug.
You probably need to define f2 as "returns SETOF void" function.

--
Itagaki Takahiro