From: | pgsql-bugs(at)postgresql(dot)org |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Bug #913: plpgsql function fails on second call |
Date: | 2003-03-18 17:26:49 |
Message-ID: | 20030318172649.BD71A476305@postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
John Duffy (jbduffy(at)ntlworld(dot)com) reports a bug with a severity of 1
The lower the number the more severe it is.
Short Description
plpgsql function fails on second call
Long Description
A function containing a left outer join declared to return a set works correctly when first called. A second call to the function terminates with an error. If the function is recreated the function then works correctly for the first call and then fails on the second.
Sample Code
createdb test
create table a (id integer, value integer)
create table b (id integer, value integer)
insert into a (id, value) values (1,1)
insert into a (id, value) values (2,2)
insert into a (id, value) values (3,3)
insert into b (id, value) values (1,1)
insert into b (id, value) values (2,2)
insert into b (id, value) values (3,3)
create type ab as (a integer, b integer)
createlang plpgsql test
create or replace function test() returns setof ab as '
declare
row ab%ROWTYPE;
begin
create temp table ab as
select a.value as a_value, b.value as b_value
from a left outer join b
on a.id = b.id;
for row in select * from ab loop
return next row;
end loop;
drop table ab;
return;
end;
' language 'plpgsql';
test=# \i test-func.sql
CREATE FUNCTION
test=# select * from test();
a | b
---+---
1 | 1
2 | 2
3 | 3
(3 rows)
test=# select * from test();
WARNING: Error occurred while executing PL/pgSQL function test
WARNING: line 9 at for over select rows
ERROR: pg_class_aclcheck: relation 3759490 not found
No file was uploaded with this report
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2003-03-18 17:31:04 | Re: Bug #913: plpgsql function fails on second call |
PostgreSQL : 스포츠 | Leon Qiu | 2003-03-18 16:35:18 | ERROR: Invalid EUC_CN character sequence found (0x8000) |