Thread: proposal, plpgsql, 8.4, for record in cursor
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
"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
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/
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 >
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