From: | "Pavel Stehule" <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | "Merlin Moncure" <mmoncure(at)gmail(dot)com> |
Cc: | "Hannu Krosing" <hannu(at)krosing(dot)net>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: proposal: table functions and plpgsql |
Date: | 2008-05-21 21:03:53 |
Message-ID: | 162867790805211403u34fcc657nf2311877419ae839@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
2008/5/21 Merlin Moncure <mmoncure(at)gmail(dot)com>:
> 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;
> [...]
>
I though about it - but there I specify only one result variable and I
directly specify name of variable to programmer. I thing so type
specification is less limited.
> or
> RETURNS TABLE r(a integer, b integer) AS $$
>
It's not ANSI compatible
Pavel
> merlin
>
From | Date | Subject | |
---|---|---|---|
Next Message | Richard Huxton | 2008-05-21 21:04:13 | Re: May Commitfest is done! |
Previous Message | Pavel Stehule | 2008-05-21 21:01:10 | Re: proposal: table functions and plpgsql |