Re: call syntax for record returning stored function - Mailing list pgsql-jdbc

From markw@osdl.org
Subject Re: call syntax for record returning stored function
Date
Msg-id 200403222155.i2MLt6E25267@mail.osdl.org
Whole thread Raw
In response to Re: call syntax for record returning stored function  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-jdbc
On 22 Mar, Tom Lane wrote:
> markw@osdl.org writes:
>> I'm having a little trouble figuring out the call syntax for calling a
>> pl/pgsql stored function that returns a record with
>> Connection.prepareCall().  I'm not getting the column definition list
>> correct.  A pointer to an example would be great, or an example for
>> something like the following:
>
>>     CREATE OR REPLACE FUNCTION home (INTEGER, INTEGER)
>>         RETURNS RECORD AS '
>>     DECLARE
>>         c_fname CHAR(15);
>>         pp_i_id1 INTEGER;
>>         rec RECORD;
>>     BEGIN
>>         ...
>>         SELECT c_fname::CHAR(15), pp_i_id1::INTEGER
>>         INTO rec;
>>         RETURN rec;
>>     END;
>>     ' LANGUAGE 'plpgsql';
>
> You could call that function like this:
>
> regression=# select home.* from home(3,4) as (f1 char(15), f2 int);
>  f1 | f2
> ----+----
>     |
> (1 row)
>
> regression=# select h.* from home(3,4) as h (f1 char(15), f2 int);
>  f1 | f2
> ----+----
>     |
> (1 row)
>
> Note that the AS clause must provide column names as well as types
> for the function output.  I think the word "AS" is optional in the
> second case but not the first.

Perfect, thanks!

Mark

pgsql-jdbc by date:

Previous
From: Tom Lane
Date:
Subject: Re: call syntax for record returning stored function
Next
From: Paul Thomas
Date:
Subject: Re: Postmaster not dropping connections on tomcat restart.