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
Show quoted text
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