Re: return setof : alternatives to holder table

From: Mike Christensen <mike(at)kitchenpc(dot)com>
To: Craig Ringer <craig(at)postnewspapers(dot)com(dot)au>
Cc: zhong ming wu <mr(dot)z(dot)m(dot)wu(at)gmail(dot)com>, pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: return setof : alternatives to holder table
Date: 2010-08-15 10:18:31
Message-ID: AANLkTikzwN0t9+d-PURik2fpJ8UvOQ439oCJF5qPD0GZ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Sun, Aug 15, 2010 at 3:10 AM, Craig Ringer
<craig(at)postnewspapers(dot)com(dot)au>wrote:

> On 15/08/10 18:00, zhong ming wu wrote:
>
> > Thanks for any better solution to this
>
> CREATE TYPE
>
> However, you still have to have a special type around just for that
> function, and you have to *maintain* it to ensure it always matches the
> types/columns of the input tables.
>
> I frequently wish for type inference in PL/PgSQL functions returning
> query results, so Pg could essentially create and destroy a type along
> with the function, allowing you to reference columns in the functions
> results without having to use RETURNS RECORD and all that AS
> (column-list) pain.
>
> Of course, I don't want it badly enough to put my time where my mouth is
> and try to code it ;-) . I'm not whining about the current situation,
> just thinking about ways it could improve further.
>
>
>
How about just using OUT parameters?

CREATE FUNCTION FOO(IN _id uuid, OUT col1 text, OUT col2 text)
RETURNS SETOF record AS
BEGIN
select col1, col2 from test where id=_id;
END;

Then your output just has to match the signature of the OUT parameters. And
you don't need to define anything when you call it.

Mike

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message A. Kretschmer 2010-08-15 10:20:02 Re: return setof : alternatives to holder table
Previous Message Craig Ringer 2010-08-15 10:10:28 Re: return setof : alternatives to holder table