Re: [INTERFACES] Re: [HACKERS] changes in 6.4
От | Hannu Krosing |
---|---|
Тема | Re: [INTERFACES] Re: [HACKERS] changes in 6.4 |
Дата | |
Msg-id | 35AEFAAB.2C8CC9B0@trust.ee обсуждение исходный текст |
Ответ на | Re: [INTERFACES] Re: [HACKERS] changes in 6.4 (Bruce Momjian <maillist@candle.pha.pa.us>) |
Список | pgsql-hackers |
Thomas G. Lockhart wrote: > > > And there is no way of doing (at least presently): > > > > select * from table where (val1,val2,val3) > > in (select 1,1,1 union select 1,1,2); > > I'll look at that... Could it be a good idea to have the syntax (at least for constants), changed to (or at least allowed ;) to the following: select * from table where (val1,val2,val3) in ( (1,1,3), (1,1,2), (1,1,1) ); Which brings us to another issue: Should (val1,val2,val3) be just some construct that gets rewritten to "something else" in parser, or should it create an instance of anonymus row type ? Allowing anonymus row type creation on the fly would allow us many nice things, for example a way to create new types of aggregate functions, like FOR_MAX((price,date)), so that we could do the following in only one pass SELECT FOR_MAX((price,sales_datetime)) as last_price, MAX(sales_datetime) as last_sale, WEEK(sales_datetime) week_nr GROUP BY week_nr ; This would get the prices and dates of each weeks last sale, and is much hairier to do using just standard sql. Hannu
В списке pgsql-hackers по дате отправления: