Есть
jsonb поле
properties.
У некоторых записей в
properties есть объект
price.
То-есть там лежит такой json объект:
{
price: {
id: 222,
val: 150
}
}
Хочу ускорить такой SELECT:
SELECT * FROM "TABLE_NAME" WHERE (properties #>> '{price, val}')::int BETWEEN '100' AND'200'
Создаю такой индекс:
CREATE INDEX price_btree_idx ON estates USING btree (((properties -> 'price') -> 'val'))
Изменений не наблюдается, так как судя по всему база считает, что поле val — это текст.
Как правильно сделать такой индекс?
UPD:
Само поле "properties" у меня уже проиндексировано:
CREATE INDEX properties_gin_idx ON estates USING gin (properties jsonb_path_ops)