From: | "Merlin Moncure" <mmoncure(at)gmail(dot)com> |
---|---|
To: | "Hannu Krosing" <hannu(at)krosing(dot)net> |
Cc: | "Pavel Stehule" <pavel(dot)stehule(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: proposal: table functions and plpgsql |
Date: | 2008-05-21 17:31:01 |
Message-ID: | b42b73150805211031mc717455p4714b433fe7c8e7@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, May 21, 2008 at 1:28 PM, Hannu Krosing <hannu(at)krosing(dot)net> wrote:
>> In my proposal I don't create any default variables. Result type is
>> only virtual - I don't need write it to system directory. I thing it's
>> better than using some specific predeclared type as RESULTTYPE OR
>> RESULTSET.
>
> How is this different from using OUT params and RETURNS SETOF RECORD ?
*) you reference output variables via rowtype (r.var vs. var)
*) seems cleaner to separate in/out variables so add/drop function are
symmetric.
Also,
What about:
CREATE OR REPLACE FUNCTION foo(m integer)
RETURNS TABLE (a integer, b integer) AS $$
-- DECLARE r foo; -- make alias of r to foo optional
BEGIN
FOR i IN 1..m LOOP
foo.a := i; foo.b := i + 1;
[...]
or
RETURNS TABLE r(a integer, b integer) AS $$
merlin
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2008-05-21 18:07:56 | May Commitfest is done! |
Previous Message | Hannu Krosing | 2008-05-21 17:28:12 | Re: proposal: table functions and plpgsql |