Есть некая таблица хранящая JSONB в котором есть примерно следующие значения:
{
"time": {
"start": "2020-09-11T21:31:04Z"
"end": "2020-09-11T21:44:10Z",
}
}
И хочется их проиндексировать для ускорения поиска.
Но вот дело в том, что в строке хранится по сути «timestamp with timezone», а на него постгря ругается:
CREATE INDEX gen_time_index ON item (((data->'time'->>'start')::timestamp));
ERROR: ОШИБКА: функции в индексном выражении должны быть помечены как IMMUTABLE
SQL state: 42P17
Как бы это можно было бы обойти?
Да, можно конечно завести отдельную таблицу/поле с типом timestamp и триггером заполнять. Но хотелось бы без лишних телодвижений.