Как создать уникальный индекс в postgresql с to_date

Мы переходим с Oracle на Postgresql. В Oracle у нас есть следующий уникальный индекс:

CREATE UNIQUE INDEX USER_UI1 ON USER (LOGINID, COALESCE(DATEDELETED,TO_DATE(' 1900-01-01 00:00:00', ' YYYY-MM-DD HH24:MI:SS')));

Когда я пытаюсь создать аналогичный уникальный индекс в Postgresql, я получаю ОШИБКУ: функции в выражении индекса должны быть помечены как IMMUTABLE.

Как мне создать аналогичный уникальный индекс в Postgresql?

Изменить. Это утверждение, которое я пытаюсь использовать в Postgresql.

CREATE UNIQUE INDEX USER_UI1 ON USER (LOGINID, COALESCE(DATEDELETED,TO_DATE(' 1900-01-01 00:00:00', ' YYYY-MM-DD HH24:MI:SS')));

Edit2 - на основе комментария klin работает следующее утверждение:

CREATE UNIQUE INDEX USER_UI1 ON USER (LOGINID, COALESCE(DATEDELETED, ' 1900-01-01 00:00:00'::DATE));

person irrational    schedule 18.05.2016    source источник
comment
Не могли бы вы поделиться тем, как вы создаете его в postgresql?   -  person sebenalern    schedule 19.05.2016
comment
Хорошо, я добавил оператор, который пытаюсь использовать в Postgresql.   -  person irrational    schedule 19.05.2016
comment
stackoverflow.com/questions/33315445/   -  person a_horse_with_no_name    schedule 19.05.2016
comment
Используйте простое приведение '1900-01-01 00:00:00'::date вместо to_date(). Кстати, на самом деле в Postgres вы не можете создать таблицу USER.   -  person klin    schedule 19.05.2016
comment
Спасибо клин! Кастинг на сегодняшний день решил проблему. И у меня действительно нет таблицы с именем USER. Я просто использовал это как простой пример.   -  person irrational    schedule 19.05.2016
comment
Кстати: вам не нужен искусственный часовой. '-infinity'::date — отличный столб для забора.   -  person wildplasser    schedule 19.05.2016
comment
@wildplasser Спасибо!   -  person irrational    schedule 19.05.2016