proposal, plpgsql, 8.4, for record in cursor

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема proposal, plpgsql, 8.4, for record in cursor
Дата
Msg-id 162867790711260732u6a778211s31e29cacb5304b53@mail.gmail.com
обсуждение исходный текст
Ответы Re: proposal, plpgsql, 8.4, for record in cursor  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
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


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: plpgsql: another new reserved word
Следующее
От:
Дата:
Сообщение: Re: Replacement Selection