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.
pull/28/head
Peter Eisentraut 8 years ago
parent b48b2f8793
commit 5115854170
  1. 24
      src/test/regress/expected/plpgsql.out
  2. 22
      src/test/regress/sql/plpgsql.sql

@ -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…
Cancel
Save