From: | Rory Campbell-Lange <rory(at)campbell-lange(dot)net> |
---|---|
To: | Jan Meyland Andersen <jma(at)agile(dot)dk> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Return unknown resultset from a function |
Date: | 2012-03-04 20:58:09 |
Message-ID: | 20120304205809.GA11451@campbell-lange.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 04/03/12, Rory Campbell-Lange (rory(at)campbell-lange(dot)net) wrote:
> On 04/03/12, Jan Meyland Andersen (jma(at)agile(dot)dk) wrote:
> > My main problem is that I do not know how many columns or the data
> > type of the columns before runtime.
> > It this possible at all?
> There is a section on this in the docs at (for instance)
> http://www.postgresql.org/docs/8.4/static/xfunc-sql.html#XFUNC-OUTPUT-PARAMETERS
>
> A specific example which may help is
>
> CREATE FUNCTION new_emp() RETURNS emp AS $$
> SELECT ROW('None', 1000.0, 25, '(2,2)')::emp;
> $$ LANGUAGE SQL;
>
> Note that there are two ways of calling such a function. You probably
> want the "SELECT *" form.
My apologies -- if you aren't sure about the return type you will need
to use a RECORD.
eg http://www.postgresql.org/docs/7.4/static/plpgsql-declarations.html#PLPGSQL-DECLARATION-RECORDS
There is a good answer on stack overflow about returning polymorphic
results here:
http://stackoverflow.com/questions/4547672/how-to-return-multiple-fields-as-a-record-in-postgresql-pl-pgsql
--
Rory Campbell-Lange
rory(at)campbell-lange(dot)net
Campbell-Lange Workshop
www.campbell-lange.net
0207 6311 555
3 Tottenham Street London W1T 2AF
Registered in England No. 04551928
From | Date | Subject | |
---|---|---|---|
Next Message | Chris Angelico | 2012-03-05 02:13:14 | atoi-like function: is there a better way to do this? |
Previous Message | Rory Campbell-Lange | 2012-03-04 20:43:15 | Re: Return unknown resultset from a function |