Re: [INTERFACES] Re: [HACKERS] changes in 6.4
Hannu Krosing <hannu@trust.ee>
From: Hannu Krosing <hannu@trust.ee>
To: "Thomas G. Lockhart" <lockhart@alumni.caltech.edu>
Cc: Bruce Momjian <maillist@candle.pha.pa.us>, David Hartwig <daveh@insightdist.com>, hackers@postgreSQL.org
Date: 1998-07-17T07:18:03Z
Lists: 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