| From: | Neil Conway <neilc(at)samurai(dot)com> |
|---|---|
| To: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | RETURN QUERY in PL/PgSQL? |
| Date: | 2007-04-23 21:17:00 |
| Message-ID: | 1177363020.16415.156.camel@localhost.localdomain |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
In a PL/PgSQL set-returning function, returning the result set of a
query requires a FOR loop and repeated invocations of the RETURN NEXT
statement:
FOR x in SELECT ... LOOP
RETURN NEXT x;
END LOOP;
This works, but it seems overly verbose. It occurred to me that we could
easily add a new PL/PgSQL statement that evaluates a set-returning
expression and adds *all* the resulting rows to the function's result
set. For example:
RETURN QUERY SELECT ...;
I'm not sure of the right name: "RETURN ROWS" or "RETURN ALL" might also
work. Of course, this is syntax sugar (and superficial sugar at that),
but I believe this is a fairly common requirement.
Comments?
-Neil
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Heikki Linnakangas | 2007-04-23 21:22:04 | Re: BUG #3245: PANIC: failed to re-find shared loc k o b j ect |
| Previous Message | Gregory Stark | 2007-04-23 21:11:20 | Re: Better error message for select_common_type() |