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 по дате отправления: