Re: UNNEST with multiple args, and TABLE with multiple funcs
От | Robert Haas |
---|---|
Тема | Re: UNNEST with multiple args, and TABLE with multiple funcs |
Дата | |
Msg-id | CA+Tgmoa3Z8DZXsbk=Z=dik_ubiugEtH7nsz5xifGWf0yka4UYw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: UNNEST with multiple args, and TABLE with multiple funcs (Noah Misch <noah@leadboat.com>) |
Список | pgsql-hackers |
On Mon, Dec 2, 2013 at 11:26 PM, Noah Misch <noah@leadboat.com> wrote: > On Mon, Dec 02, 2013 at 08:56:03PM -0500, Tom Lane wrote: >> Noah Misch <noah@leadboat.com> writes: >> > ... I propose merely changing the syntax to "TABLE FOR ROWS (...)". >> >> Ugh :-(. Verbose and not exactly intuitive, I think. I don't like >> any of the other options you listed much better. Still, the idea of >> using more than one word might get us out of the bind that a single >> word would have to be a fully reserved one. >> >> > ROWS FROM >> >> This one's a little less awful than the rest. What about "ROWS OF"? > > I had considered ROWS OF and liked it, but I omitted it from the list on > account of the shift/reduce conflict from a naturally-written Bison rule. > Distinguishing it from a list of column aliases takes extra look-ahead. We > could force that to work. However, if we ever wish to allow an arbitrary > from_item in the list, it would become ambiguous: is this drawing rows from > "a" or just using an alias with a column list? > > WITH a AS (SELECT oid FROM pg_am ORDER BY 1) SELECT * FROM rows of(a, a); > > ROWS FOR is terse and conflict-free. "FOR" evokes the resemblance to looping > over the parenthesized section with the functions acting as generators. I like the idea of using ROWS + some additional word. I think I mildly prefer Tom's suggestion of ROWS FROM to your suggestion of ROWS FOR, but I can live with either one. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: