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
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 |