jsonb_each(integrations_sent))```
Как сделать индекс по значениям jsonb? Понятно что вот так нельзя, но нужно вот такое.
пример жсонб такой:
{"firebase": {"reason": "event disabled", "status": "skipped"}, "facebook": {"reason": "event disabled", "status": "skipped"}}
И я хочу чтобы я мог с помощью индекса искать в каких записях есть status: skipped
Можно превратить в строку просто конечно но как-то хз. Тогда надо триграмы юзать
Если все jsonb имеют атрибут status (а даже если и нет) можно при записи распарсить атрибут в отдельный генерируемый столбец который будет обновляться по факту обновления поля jsonb и этот вариант поддерживает индексацию. Интересный подход в стиле каждому свое реализован в проекте NORM https://github.com/hettie-d/NORM, при этом можно задействовать все возможности по индексации отдельных атрибутов.
так-то да, не хочется перезаполнять табличку на 50ГБ
А как же вы хотели создать индекс? без перелопачивания таблицы вы никакой в принципе индекс не сможете создать.
https://postgrespro.ru/docs/postgrespro/12/datatype-json#JSON-INDEXING Вариант с GIN индексом смотрели? Это не решает проблемы перелопачивания данных таблицы однако
у меня проблема там в том что корневой жсон ключ - зависит от логики приложения и может меняться)
Обсуждают сегодня