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