Re: PL/pgSQL 'i = i + 1' Syntax

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: PL/pgSQL 'i = i + 1' Syntax
Дата
Msg-id 446A609B.9040700@dunslane.net
обсуждение исходный текст
Ответ на PL/pgSQL 'i = i + 1' Syntax  (David Wheeler <david@kineticode.com>)
Ответы Re: PL/pgSQL 'i = i + 1' Syntax  (David Wheeler <david@kineticode.com>)
Re: PL/pgSQL 'i = i + 1' Syntax  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
David Wheeler wrote:
> Hellow PostgreSQL hackers,
>
> Quick question. Why does the 'i = i + 1' syntax work in this PL/pgSQL 
> function?
>
> try=# CREATE OR REPLACE FUNCTION inc_by_two(
> try(#    upfrom int,
> try(#    upto   int
> try(# ) RETURNS SETOF INT AS $$
> try$# BEGIN
> try$#     FOR i IN upfrom..upto LOOP
> try$#         RETURN NEXT i;
> try$#         i = i + 1;
> try$#     END LOOP;
> try$# END;
> try$# $$ LANGUAGE 'plpgsql';
> CREATE FUNCTION
> try=# select * from inc_by_two(1,10);
> inc_by_two
> ------------
>           1
>           3
>           5
>           7
>           9
> (5 rows)
>
> Someone posted a PL/pgSQL function in my blog with this syntax, which 
> is how I know about it, but I couldn't find it documented anywhere. Is 
> it a special exception for loop variables, perhaps?
>


It ought to be illegal to modify the loop control variable anyway, 
IMNSHO - it certainly is in Ada, the distant antecedent of pl/pgsql.

cheers

andrew


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

Предыдущее
От: David Wheeler
Дата:
Сообщение: PL/pgSQL 'i = i + 1' Syntax
Следующее
От: Mark Dilger
Дата:
Сообщение: Re: PL/pgSQL 'i = i + 1' Syntax