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 ---------------------------(end of broadcast)--------------------------- TIP 7: You can help support the PostgreSQL project by donating at http://www.postgresql.org/about/donate