Commit 51158541 authored by Peter Eisentraut's avatar Peter Eisentraut

Add tests for PL/pgSQL returning unnamed portals as refcursor

Existing tests only covered returning explicitly named portals as
refcursor.  The unnamed cursor case was recently broken without a test
failing.
parent b48b2f87
......@@ -2242,6 +2242,30 @@ drop function sp_id_user(text);
--
create table rc_test (a int, b int);
copy rc_test from stdin;
create function return_unnamed_refcursor() returns refcursor as $$
declare
rc refcursor;
begin
open rc for select a from rc_test;
return rc;
end
$$ language plpgsql;
create function use_refcursor(rc refcursor) returns int as $$
declare
rc refcursor;
x record;
begin
rc := return_unnamed_refcursor();
fetch next from rc into x;
return x.a;
end
$$ language plpgsql;
select use_refcursor(return_unnamed_refcursor());
use_refcursor
---------------
5
(1 row)
create function return_refcursor(rc refcursor) returns refcursor as $$
begin
open rc for select a from rc_test;
......
......@@ -1910,6 +1910,28 @@ copy rc_test from stdin;
500 1000
\.
create function return_unnamed_refcursor() returns refcursor as $$
declare
rc refcursor;
begin
open rc for select a from rc_test;
return rc;
end
$$ language plpgsql;
create function use_refcursor(rc refcursor) returns int as $$
declare
rc refcursor;
x record;
begin
rc := return_unnamed_refcursor();
fetch next from rc into x;
return x.a;
end
$$ language plpgsql;
select use_refcursor(return_unnamed_refcursor());
create function return_refcursor(rc refcursor) returns refcursor as $$
begin
open rc for select a from rc_test;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment