У меня есть случай, когда из-за проблем со скоростью я хочу создать индекс только для записей за последние 90 дней.
Когда я пытаюсь создать индекс следующим образом:
create index if not exists idx_d1_section_learner_partial_date_modified
on instruct.d1_section_learner (audit_modified_datetime)
where (audit_modified_datetime >= '2019-07-01 00:00:00'::timestamp);
Это работает, но я хотел сохранить динамику, поэтому я попробовал это:
create index if not exists idx_d1_section_learner_partial_date_modified
on instruct.d1_section_learner (audit_modified_datetime)
where (audit_modified_datetime >= now() - interval '90 days'::timestamp);
Это даетошибка:
ОШИБКА: функции в предикате индекса должны быть помечены IMMUTABLE
Я знаю, что это происходит из-за текущей метки времени. Потому что это не константа в транзакции. Есть ли способ, которым я могу сделать это, избегая этого?
Или, может быть, можно пометить current_timestamp
как неизменный?