Re: Proposal: plpgsql - "for in array" statement

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: Proposal: plpgsql - "for in array" statement
Дата
Msg-id AANLkTikCGGi2yNZUr8260UJmFEozpLDBk1=j1ZGEaAjX@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Proposal: plpgsql - "for in array" statement  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Proposal: plpgsql - "for in array" statement  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
2010/9/28 Tom Lane <tgl@sss.pgh.pa.us>:
> Pavel Stehule <pavel.stehule@gmail.com> writes:
>> 2010/9/28 Tom Lane <tgl@sss.pgh.pa.us>:
>>> As an example, is this a for-in-query or a
>>> for-in-array?
>>>
>>>        FOR v IN (SELECT arraycol FROM tab) LOOP ...
>
>> This is a subquery - so it is a for-in-array - should return one row
>> with one column.
>
> That's not obvious at all.  It's legal right now to write that, and it
> will be interpreted as for-in-query.

but it has not a sense. It's based on implementation and I am sure, so
this isn't documented. Yes, we are able to write

a := 10 FROM tab WHERE y = 10

but it is just more bug then required feature.

FOR v IN (SELECT FROM) when select returns more than one row is big
inconsistency - and this is bug, when this is allowed

Regards

Pavel

 Furthermore, there are cases where
> it's essential to be able to write a left paren before SELECT, so that
> you can control the precedence of UNION/INTERSECT/EXCEPT constructs.
> So you're proposing to remove functionality and break existing code in
> order to have a "simple" syntax for for-in-array.
>
>                        regards, tom lane
>


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Proposal: plpgsql - "for in array" statement
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: Proposal: plpgsql - "for in array" statement