Re: [pgsql-ru-general] Re: [pgsql-ru-general] индекс по полю JSON без функции

Поиск
Список
Период
Сортировка
От Sergey Konoplev
Тема Re: [pgsql-ru-general] Re: [pgsql-ru-general] индекс по полю JSON без функции
Дата
Msg-id CAL_0b1uPj-+pWy0yUrvecD3FxTb6=3TaOOBme1yGK7xuD1STdw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [pgsql-ru-general] индекс по полю JSON без функции  (Sergey Konoplev <gray.ru@gmail.com>)
Список pgsql-ru-general
2013/9/25 Dmitry E. Oboukhov <unera@debian.org>:
>>> CREATE INDEX ON "table" ((("field"->>'time')::timestamp(0)))
>>>     WHERE ("field"->>'time') IS NOT NULL;
>>>
>>> ругается что должно быть immutable.
>
>> immutable cast из text в timestamp(tz) в postgres нет, т.к. результат
>> зависит от внешних факторов, таких как time zone сервера (если без tz)
>> и DateStyle. Можно написать функцию, например,
>> full_iso8601_to_timestamp(text), где будет проверка на то что текст в
>> полном ISO 8601 формате (со всем чем можно и таймзоной), тогда это
>> будет действительно immutable, и это смело можно будет применять в
>> индексах. Либо в соответствии с какой-то другой договорённостью,
>> главное чтобы небыло неоднозначностей.
>
> у меня в тех JSON время хранится с зоной
> POSIX::strftime('%F %T %z', localtime)
> Постгрис зону тут отлично распознает
> я просто функцию не хотел городить выделенную.

К сожалению этого не избежать.

-- 
Kind regards,
Sergey Konoplev
PostgreSQL Consultant and DBA

http://www.linkedin.com/in/grayhemp
+1 (415) 867-9984, +7 (901) 903-0499, +7 (988) 888-1979
gray.ru@gmail.com

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

Предыдущее
От: "Dmitry E. Oboukhov"
Дата:
Сообщение: Re: Re: [pgsql-ru-general] индекс по полю JSON без функции
Следующее
От: "Dmitry E. Oboukhov"
Дата:
Сообщение: Добавить столбик одновременно заполняя значение