Thread: Can a function return more then one table?

Can a function return more then one table?

From
Mike Christensen
Date:
I would like to write a function that returns one row from one table,
and about 10 rows or so from another table..

Is there a clean way to do this, or am I better off making two separate queries?

I'm thinking maybe I can use OUT parameters for the first table, and
the return value for the second table?  However, I have no idea what
the syntax would be like.

Mike

Re: Can a function return more then one table?

From
Pavel Stehule
Date:
Hello

2012/1/11 Mike Christensen <mike@kitchenpc.com>:
> I would like to write a function that returns one row from one table,
> and about 10 rows or so from another table..
>
> Is there a clean way to do this, or am I better off making two separate queries?
>
> I'm thinking maybe I can use OUT parameters for the first table, and
> the return value for the second table?  However, I have no idea what
> the syntax would be like.
>

what is possible

* return setof refcursors
* use arrays instead tables and returns arrays (for tables less 10000 rows)

Regards

Pavel Stehule

> Mike
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general

Re: Can a function return more then one table?

From
Mike Christensen
Date:
> 2012/1/11 Mike Christensen <mike@kitchenpc.com>:
>> I would like to write a function that returns one row from one table,
>> and about 10 rows or so from another table..
>>
>> Is there a clean way to do this, or am I better off making two separate queries?
>>
>> I'm thinking maybe I can use OUT parameters for the first table, and
>> the return value for the second table?  However, I have no idea what
>> the syntax would be like.
>>
>
> what is possible
>
> * return setof refcursors
> * use arrays instead tables and returns arrays (for tables less 10000 rows)

Thanks!  Both of these options sound feasible, I will play around with
some code and see what I can come up with.

Mike

Re: Can a function return more then one table?

From
Sergey Konoplev
Date:
On Wed, Jan 11, 2012 at 10:47 AM, Pavel Stehule <pavel.stehule@gmail.com> wrote:
> * return setof refcursors
> * use arrays instead tables and returns arrays (for tables less 10000 rows)

One more option is to use hstore plus populate_record().

>
> Regards
>
> Pavel Stehule
>
>> Mike
>>
>> --
>> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
>> To make changes to your subscription:
>> http://www.postgresql.org/mailpref/pgsql-general
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general



--
Sergey Konoplev

Blog: http://gray-hemp.blogspot.com
LinkedIn: http://ru.linkedin.com/in/grayhemp
JID/GTalk: gray.ru@gmail.com Skype: gray-hemp