Re: expression index on date_trunc

Поиск
Список
Период
Сортировка
От Daniel Verite
Тема Re: expression index on date_trunc
Дата
Msg-id f6b42095-5fe2-4f6a-8c49-6bd49badb3ad@mm
обсуждение исходный текст
Ответ на expression index on date_trunc  (a.redhead@openinternetsolutions.com)
Список pgsql-general
    A Redhead wrote:

>   CREATE INDEX request_day_idx ON moksha_sm_request
(date_trunc('day', request_received));
>
> I get the error message:
>
>   ERROR: functions in index expression must be marked IMMUTABLE
[...]
> I'd be grateful if someone could point out what part of the statement
is not IMMUTABLE
> or how I could mark my create index statement as being immutable.

The retrieved value of request_received depends on your current
timezone, and so does the result of date_trunc, that would be why it's
not immutable.
If you don't need that behavior, you can shift your timestamptz to a
fixed timezone, both in your index and in your queries, as in:

CREATE INDEX request_day_idx ON moksha_sm_request
  (date_trunc('day', request_received at time zone 'Europe/Paris'));

--
 Daniel
 PostgreSQL-powered mail user agent and storage:
http://www.manitou-mail.org

В списке pgsql-general по дате отправления:

Предыдущее
От: Reece Hart
Дата:
Сообщение: Re: Oracle Analytical Functions
Следующее
От: Gregory Stark
Дата:
Сообщение: Re: expression index on date_trunc