Re: Proposal: plpgsql - "for in array" statement
От | Pavel Stehule |
---|---|
Тема | Re: Proposal: plpgsql - "for in array" statement |
Дата | |
Msg-id | AANLkTi=18UivzKezbi+Eax0xx3LeHGr_CfK24z6xrMp1@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Proposal: plpgsql - "for in array" statement (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Proposal: plpgsql - "for in array" statement
Re: Proposal: plpgsql - "for in array" statement |
Список | pgsql-hackers |
2010/9/28 Tom Lane <tgl@sss.pgh.pa.us>: > Pavel Stehule <pavel.stehule@gmail.com> writes: >> I looked on some constructs that helps with iteration over array in >> plpgsql. I propose a following syntax: > >> FOR var IN [array variable | array expression] >> LOOP > > I don't have any opinion about whether the functionality proposed here > is worth the trouble, but I do have an opinion about that syntax: it's > an awful choice. plpgsql has enough trouble already distinguishing > between integer for-loops and query for-loops, not to mention trouble > in producing a helpful error message when somebody gets either of those > constructs slightly wrong. Providing a variant where a single > expression can follow IN will make both of those problems an order of > magnitude worse. 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. Similar construct is in SQL/PSM where you can to write SET var = (SELECT ...) You cannot to write just (SELECT ...) anywhere > Either answer is plausible depending on whether you assume the > parentheses make it a subquery. > > Pick something less easily confusable with the existing constructs. It's not simple - FOR i IN array is natural - Original ADA use a very similar construct. FOR i IN ARRAY has problem with constant array - FOR i IN ARRAY ARRAY[1,2,3,] and FOREACH is used in Oracle for absolutely different task. > we have now a for-in-cursor, so there is a precedent. regards Pavel > regards, tom lane >
В списке pgsql-hackers по дате отправления: