Re: PL/PgSQL: stmt_fors and variable value after loop

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: PL/PgSQL: stmt_fors and variable value after loop
Дата
Msg-id 26441.1421682246@sss.pgh.pa.us
обсуждение исходный текст
Ответ на PL/PgSQL: stmt_fors and variable value after loop  (Marko Tiikkaja <marko@joh.to>)
Ответы Re: PL/PgSQL: stmt_fors and variable value after loop  (Marko Tiikkaja <marko@joh.to>)
Re: [DOCS] PL/PgSQL: stmt_fors and variable value after loop  (Marko Tiikkaja <marko@joh.to>)
Список pgsql-docs
Marko Tiikkaja <marko@joh.to> writes:
> As far as I can tell, according to the documentation[1] the return value
> of this PL/PgSQL function is undefined:

> CREATE OR REPLACE FUNCTION public.foof()
>   RETURNS integer
>   LANGUAGE plpgsql
> AS $function$
> declare
> _f1 int;
> begin
> for _f1 in select 1 loop
> end loop;
> return _f1;
> end
> $function$

> But at least based on my understanding of exec_for_query() in pl_exec.c,
> a FOR loop over query results will always terminate with the values from
> the last row if at least one was found, regardless of whether EXIT was
> used or not.  Is there a reason this detail has been left undefined in
> the documentation?  If not, can we change the documentation?

It seems to me that to do so would mostly be to encourage sloppy
programming practices, at the price of constraining future implementation
changes.  Can you give a compelling example of a non-kluge usage for
such an assumption?  The above certainly isn't one.

            regards, tom lane


--
Sent via pgsql-docs mailing list (pgsql-docs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs


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

Предыдущее
От: Marko Tiikkaja
Дата:
Сообщение: PL/PgSQL: stmt_fors and variable value after loop
Следующее
От: Marko Tiikkaja
Дата:
Сообщение: Re: PL/PgSQL: stmt_fors and variable value after loop