Re: Seqscan in MAX(index_column)
От | Bruce Momjian |
---|---|
Тема | Re: Seqscan in MAX(index_column) |
Дата | |
Msg-id | 200309041719.h84HJwa28484@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: Seqscan in MAX(index_column) (Greg Stark <gsstark@mit.edu>) |
Ответы |
Re: Seqscan in MAX(index_column)
Re: Seqscan in MAX(index_column) |
Список | pgsql-hackers |
Greg Stark wrote: > It has nothing to do with MVCC. It has to do with implementing this is hard in > the general case. > > Think of examples like: > > select max(foo) group by bar; > > or > > select max(foo) where xyz = z; > > To do it properly max/min have to be special-cased and tightly integrated with > other code to handle index scans and aggregates. As it currently stands > they're implemented the same way as any other aggregate, which means they get > to see all the records in the grouping. > > This is a frequently asked question, I'm surprised you didn't find stuff > searching with google. There have been numerous long discussions on this topic > not long ago. People are still trying to think about how to handle this > better. The FAQ does have the example of using ORDER BY LIMIT 1 for MAX(). What we don't have a workaround for is COUNT(*). I think that will require some cached value that obeys MVCC rules of visibility. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
В списке pgsql-hackers по дате отправления: