Я знаю, что вы можете создать индекс в поле в столбце hstore. Я знаю, что вы также можете создать индекс GIN в столбце массива.Индексы на столбцах массива hstore PostgreSQL
Но каков синтаксис для создания индекса в массиве hstore?
например.
CREATE TABLE customer (
pk serial PRIMARY KEY,
customer hstore,
customer_purchases hstore[]
);
Допустим, клиент покупает hstore может быть хэш как
productId -> 1
price -> 9.99
и у меня есть массив из тех, в customer_purchases hstore []
Я хочу, чтобы создать индекс на клиента .customer_purchases [] -> productId
Возможно ли это? Я пробовал разные комбинации синтаксисов CREATE INDEX, и ни один из них, похоже, не поддерживает индексирование полей в массиве hstore.
Это похоже на проблему, если вы игнорируете hstore и просто используете две дополнительные таблицы. Почему так? Если по какой-то причине вам необходимо определить функцию IMMUTABLE, которая производит сортируемое значение и вызовет функцию в синтаксисе CREATE INDEX. –
Как я уже упоминал в приведенном ниже комментарии, мы хотим перейти к модели DB без схемы, чтобы мы могли развертывать новые версии наших приложений без необходимости простоев, вызванных обновлениями БД и блокировками таблицы ALTER TABLE ADD COLUMN. –