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 ?
I'd think the conversion of a timestamptz -> date would be dependent on timezone which would make it not immutable. ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html