Re: cast not IMMUTABLE?
| От | Sam Barnett-Cormack | 
|---|---|
| Тема | Re: cast not IMMUTABLE? | 
| Дата | |
| Msg-id | Pine.LNX.4.58.0405070132450.4035@localhost.localdomain обсуждение исходный текст | 
| Ответ на | cast not IMMUTABLE? (Gaetano Mendola <mendola@bigfoot.com>) | 
| Список | pgsql-admin | 
On Fri, 7 May 2004, Gaetano Mendola wrote: > Hi all, > I have a table with ~ 3e+6 rows on it. > > I do select on this table in this way: > > > (1) select * from user_logs where login_time::date = now()::date; > > > consider that login_time is a TIMESTAMPTZ with an index on it. > > If I use the select in this way: > > select * from user_logs where login_time = now(); > > the the index is used. > > I'm trying to use define and index in order to help the query (1): > > > test# create index idx on user_logs ( (login_time::date) ); > ERROR: functions in index expression must be marked IMMUTABLE > > > why that cast is not considered IMMUTABLE ? > > > How can I define an index for the query (1) ? The way I have done such queries hs been to create functions, marked immutable, that encapsulate the cast/non-immutable internal function, if I know that it *is* really immutable, at least for my purposes, and use a functional index. -- Sam Barnett-Cormack Software Developer | Student of Physics & Maths UK Mirror Service (http://www.mirror.ac.uk) | Lancaster University
В списке pgsql-admin по дате отправления: