Re: FOR-IN-EXECUTE: FOR does not replanned on each entry to the FOR loop

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: FOR-IN-EXECUTE: FOR does not replanned on each entry to the FOR loop
Дата
Msg-id 3743.1206716285@sss.pgh.pa.us
обсуждение исходный текст
Ответ на FOR-IN-EXECUTE: FOR does not replanned on each entry to the FOR loop  (<Eugen.Konkov@aldec.com>)
Список pgsql-bugs
<Eugen.Konkov@aldec.com> writes:
> --WHILE (v_parent_ID IS NOT NULL) LOOP
> -- EXECUTE 'SELECT parent_ID, name FROM akh_build WHERE ID = ' ||
> quote_literal(v_parent_ID) INTO v_row;
> -- return next v_row;
> -- v_parent_ID= v_row.parent_ID;
> --END LOOP;

> FOR v_row IN EXECUTE 'SELECT parent_ID, name FROM akh_build WHERE ID = ' ||
> quote_literal(v_parent_ID) LOOP
>  return next v_row;
>  v_parent_ID= v_row.parent_ID;
> END LOOP;

> FOR and WHILE results differ

Well, sure.  They are supposed to.

> While docs says:
> 38.6.4. Looping Through Query Results
> ....
> This is like the previous form, except that the source query is specified as
> a string expression, which is evaluated and replanned on each entry to the
> FOR loop

It is evaluated when starting the loop, not each time around the body
of the loop.  I can hardly even imagine what the semantics you suggest
would be like.

            regards, tom lane

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Redundant explicit field name/types description while select from function with return type of record
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: Re: [PATCHES] Incomplete docs for restore_command for hotstandby