Thread: proposal, plpgsql, 8.4, for record in cursor

proposal, plpgsql, 8.4, for record in cursor

From
"Pavel Stehule"
Date:
Hello

I propose new kind of FOR statement .. iteration over cursor, There
are two reasons:

a) better readability of procedure; - SQL statement is outside of statement,

b) better conformance with PL/SQL.

Sample:
CREATE OR REPLACE FUNCTION foo()
RETURNS void AS $$
DECLARE c CURSOR(p integer)   FOR SELECT *              FROM foot             WHERE a = p;
BEGIN FOR r IN c(10) LOOP   RAISE NOTICE '%', r.a; END LOOP; RETURN;
END;
$$ FUNCTION plpgsql;

Syntax:

FOR recordvar IN cursor[ ( params ) ] LOOP ..
END LOOP;

Notes:
recordvar is local in statement body (like fori). Used cursor is
automatically opened and closed.

Lot of code can be shared with fors and dynafors (some with stmt_open).

Regards
Pavel Stehule


Re: proposal, plpgsql, 8.4, for record in cursor

From
Tom Lane
Date:
"Pavel Stehule" <pavel.stehule@gmail.com> writes:
> I propose new kind of FOR statement .. iteration over cursor,

This seems useless and probably syntactically ambiguous.
        regards, tom lane


Re: proposal, plpgsql, 8.4, for record in cursor

From
Peter Eisentraut
Date:
Am Montag, 26. November 2007 schrieb Tom Lane:
> "Pavel Stehule" <pavel.stehule@gmail.com> writes:
> > I propose new kind of FOR statement .. iteration over cursor,
>
> This seems useless and probably syntactically ambiguous.

I think that is isomorphic to what he mentioned as "better conformance with 
PL/SQL".

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/


Re: proposal, plpgsql, 8.4, for record in cursor

From
"Pavel Stehule"
Date:
On 26/11/2007, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> "Pavel Stehule" <pavel.stehule@gmail.com> writes:
> > I propose new kind of FOR statement .. iteration over cursor,
>
> This seems useless and probably syntactically ambiguous.
>

I don't see any syntactically problem and I have working prototype.
This case is simply identified by cursor variable after IN keyword.

It's possibility little bit clean open, fors, dynafors code.

Regards
Pavel Stehule
                        regards, tom lane
>


Re: proposal, plpgsql, 8.4, for record in cursor

From
Chris Browne
Date:
peter_e@gmx.net (Peter Eisentraut) writes:
> Am Montag, 26. November 2007 schrieb Tom Lane:
>> "Pavel Stehule" <pavel.stehule@gmail.com> writes:
>> > I propose new kind of FOR statement .. iteration over cursor,
>>
>> This seems useless and probably syntactically ambiguous.
>
> I think that is isomorphic to what he mentioned as "better conformance with 
> PL/SQL".

Hmm.  So "better conformance with PL/SQL" amounts to being useless and
syntactically ambiguous...

;-)
-- 
let name="cbbrowne" and tld="linuxfinances.info" in name ^ "@" ^ tld;;
http://linuxfinances.info/info/sgml.html
"HE'S AHAB, boy; and Ahab of old, thou knowest, was a crowned king!"
-- /Moby-Dick/, Ch 16