return X number of refcursors from a function - Mailing list pgsql-general

From Derek Liang
Subject return X number of refcursors from a function
Date
Msg-id 4c723ab70812301433k3310b126i5a42b696c0392736@mail.gmail.com
Whole thread Raw
Responses Re: return X number of refcursors from a function  ("Albe Laurenz" <laurenz.albe@wien.gv.at>)
List pgsql-general
I tried to use the following code to retrieve the content of table1 4
times (in my application, the total number of refcursors that will be
returned is determined by the data in the database). I am getting the
error message says "ERROR:  cursor "<unnamed portal 2>" already in
use".

Thank you in advance!

dl

--Start of the code
--DROP FUNCTION myfunc(int);

CREATE FUNCTION myfunc(int) RETURNS SETOF refcursor AS $$
DECLARE i int;
    r refcursor;
BEGIN
    i := $1;
    WHILE i>0 LOOP
    RAISE NOTICE 'loop count %;', i;
    i := i-1;

    OPEN r FOR SELECT * FROM table1;
        RETURN NEXT r;
    END LOOP;

    RETURN;
END;
$$ LANGUAGE plpgsql;

BEGIN;
SELECT * FROM myfunc(4);
COMMIT;

pgsql-general by date:

Previous
From: "Eric Worden"
Date:
Subject: Re: "disappearing" rows in temp table, in recursing trigger
Next
From: Tom Lane
Date:
Subject: Re: "disappearing" rows in temp table, in recursing trigger