Hi, I found this bug? In beta 3. I am not a Linux guru so installing any
betas in Debian is very painful for me. Perhaps you could check to see if
it is still there in beta 4??
Last time I reported a bug
http://archives.postgresql.org/pgsql-committers/2007-11/msg00584.php
I did not get any direct feedback and only found it by fluke. My pgsql-bugs
subscription is set
to "nomail". Please reply directly to chrisj.wood@sympatico.ca
Here are the steps that demonstrate the problem:
drop type t_tempbug_c cascade;
create type t_tempbug_c as (
CONF_KEY int4
)
;
create or replace function tempbug_c()
returns SETOF t_tempbug_c
as $$
declare
begin
drop table if exists temp_table cascade;
create temporary table temp_table(a int);
insert into temp_call_table values (7) ;
return query
select 0 from temp_call_table limit 1 ;
end;
$$ language plpgsql;
create or replace function tempbug()
returns SETOF t_tempbug_c
as $$
declare
val int;
begin
create temporary table temp_call_table (a int);
perform tempbug_c() ;
return query
select * from temp_call_table ;
drop table temp_call_table ;
end;
$$ language plpgsql;
protocal2=> select * from tempbug() ;
ERROR: set-valued function called in context that cannot accept a set
CONTEXT: PL/pgSQL function "tempbug_c" line 6 at RETURN QUERY SQL statement
"SELECT tempbug_c()"
PL/pgSQL function "tempbug" line 5 at PERFORM
protocal2=> select version() ;
version
----------------------------------------------------------------------------
-------------------------------------
PostgreSQL 8.3beta3 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.2.3
20071014 (prerelease) (Debian 4.2.2-3)
(1 row)