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

From Tom Lane
Subject Re: call syntax for record returning stored function
Date
Msg-id 8023.1079988753@sss.pgh.pa.us
Whole thread Raw
In response to call syntax for record returning stored function  (markw@osdl.org)
Responses Re: call syntax for record returning stored function
List pgsql-jdbc
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.

            regards, tom lane

pgsql-jdbc by date:

Previous
From: Dave Cramer
Date:
Subject: Re: Postmaster not dropping connections on tomcat restart.
Next
From: markw@osdl.org
Date:
Subject: Re: call syntax for record returning stored function