From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Arturo Perez" <aperez(at)hayesinc(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: [8.1.4] Create index on timestamp fails |
Date: | 2006-08-22 21:35:47 |
Message-ID: | 12016.1156282547@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
"Arturo Perez" <aperez(at)hayesinc(dot)com> writes:
> I have a table with an column:
> entry_date | timestamp with time zone| not null
> And when I try to create an index on it like so:
> create index entry_date_idx on =
> user_tracking(date_part('year',entry_date));
> I get a
> ERROR: functions in index expression must be marked IMMUTABLE
> According to the mailing lists, this has been working since 7.4.
I seriously doubt that. date_part on a timestamptz is stable, not
immutable, and AFAICT has been marked that way since 7.3. The problem
is that the results depend on your current TimeZone setting --- for
instance, 2AM 2006-01-01 in London is 9PM 2005-12-31 where I live.
If you only need day precision, try storing entry_date as a date instead
of a timestamptz. Or perhaps consider timestamp without tz. But you
need something that's not timezone-dependent to make this work.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Bryan White | 2006-08-22 21:50:41 | Re: share library version problems |
Previous Message | Tom Lane | 2006-08-22 21:26:54 | Re: varchar(n) vs. varchar |