How to create a function with multiple RefCursor OUT parameters - Mailing list pgsql-general

From Chuck Bai
Subject How to create a function with multiple RefCursor OUT parameters
Date
Msg-id 48273E4B.4050104@gmail.com
Whole thread Raw
Responses Re: How to create a function with multiple RefCursor OUT parameters
Re: How to create a function with multiple RefCursor OUT parameters
List pgsql-general
I have the following function:

CREATE OR REPLACE FUNCTION test_refcursor(INOUT tcount integer, OUT
o_user refcursor, OUT o_name refcursor)
  RETURNS record AS
$BODY$
BEGIN
    tcount := tcount + 1;
    OPEN o_user FOR SELECT * FROM user_table;
    OPEN o_name FOR SELECT * FROM name_table;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE

Question 1: The function is not working with Npgsql .NET data provider.
It did not return a valid .NET DataSet. But the INOUT parameter tcount
works fine. How could I test the above function with SQL in pgAdmin III?
I want to find out if problem is in the function or in the Npgsql.

Question 2: pgAdmin III automatically added "RETURNS record" in the
above function when RETURNS clause is not specified initially. Why is
that? Is this the problem since it returns only single data table with
the following value? How to fix it?

tcount     o_user     o_name
23     <unnamed portal 1>     <unnamed portal 2>


Question 3: I want to return a single DataSet with each OUT RefCursor
map to a DataTable within the DataSet,  plus extra OUT parameters for
individual OUT values. How could I create such a function?

Any help is appreciated.

pgsql-general by date:

Previous
From: "Postgres User"
Date:
Subject: Re: Scripting function definitions as SQL?
Next
From: hubert depesz lubaczewski
Date:
Subject: Re: Scripting function definitions as SQL?