Мне нужно установить комбинированный индекс для двух полей из JSONB в моей PostgreSQL БД. Я могу установить индекс для одного поля, например, так (используя ActiveRecord в моем приложении на Rails 6):
add_index :my_table,
"(content->'reference')",
using: :gin,
name: 'index_my_table_on_content_reference'
Это работает, как и ожидалось. Однако, когда я пытаюсь установить комбинированный индекс для двух полей, я получаю следующую ошибку:
add_index :my_table,
["(content->'reference')", "(content->'ext_id')"],
using: :gin,
name: 'index_my_table_on_content_ref_and_ext_id'
ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: column "(content->'reference')" does not exist
Что я делаю неправильно и как я могу создать комбинированный Индекс для нескольких полей в столбце JSONB?
И прежде чем вы спросите: Да, у каждого BLOB-объекта JSONB есть ключ с именем reference
.
Использование: Ruby 2.6.5, Rails 6.0 PostgreSQL 11