Thread: Unnamed Cursor return

Unnamed Cursor return

From
"Kumar"
Date:
Dear Friends,
 
Using Postgres 7.3.4 on Linux 7.3 Server. Using PgAdmin II for Windows version 1.6.0 to connect to the server from my client machine.
 
CREATE FUNCTION selfn() RETURNS refcursor AS 'DECLARE
ref1 refcursor;
BEGIN
OPEN ref1 FOR
SELECT *  FROM address;
RETURN ref1;
END;'  LANGUAGE 'plpgsql' VOLATILE;
 
this works fine. 
I execute it at PgAdmin
 
SELECT selfn();
an unnamed cursor is returned.
fetch all from  "<unnamed cursor 2 >";
at PgAdmin shows a popup window saying the query is executed, but the content is not shown.
 
at command prompt
SELECT selfn();
an unnamed cursor is returned.
fetch all from  "<unnamed cursor 2 >";
WARNING:  PerformPortalFetch: portal "<unnamed cursor 1>" not found
FETCH 0
 
(1) pls have a look in the function, that I have named the cursor as ref1, but again it is returning a unnamed cursor?
 
(2) How to fetch the content of the unnamed cursor at PgAdmin and at Command prompt?
 
 
Please help me with this, as it is much helpful for my development purpose.
 
Regards
Kumar

Re: Unnamed Cursor return

From
Tom Lane
Date:
"Kumar" <sgnerd@yahoo.com.sg> writes:
> (1) pls have a look in the function, that I have named the cursor as ref1, =
> but again it is returning a unnamed cursor?

This is not a bug.  See the "returning cursors" section of the plpgsql
manual.  (IIRC, you can also create a named cursor by binding the cursor
in DECLARE.)

> (2) How to fetch the content of the unnamed cursor at PgAdmin and at Comman=
> d prompt?

You probably need a BEGIN block in the psql case.  Can't help you with
pgadmin.
        regards, tom lane