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.
This commit is contained in:
parent
b48b2f8793
commit
5115854170
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user