SELECT col1, max(date) as max_date
FROM table
WHERE col1 ILIKE 'name'
GROUP BY col1
Здесь col1 — это varchar
, а дата — это timestamp with time zone
тип данных. Так создано расширение CREATE EXTENSION pg_trgm
Затем попробовал следующие индексы и получил ошибки:
1: Проблема: ОШИБКА: класс оператора "gin_trgm_ops" не принимает временную метку типа данных с часовым поясом
CREATE INDEX CONCURRENTLY trgm_table_col1_date_index
ON table
USING gin (provider_id, date gin_trgm_ops);
2: Проблема: ОШИБКА: класс оператора "text_pattern_ops" не существует для метода доступа "gin"
CREATE INDEX CONCURRENTLY trgm_table_col1_date_index
ON table
USING gin (provider_id, date text_pattern_ops);
Как я могу создать индекс для вышеуказанного запроса для более быстрого выполнения? Любая помощь будет действительно оценена!
РЕДАКТИРОВАТЬ: Так что это работает синтаксически, но не ускоряет запрос:
CREATE INDEX CONCURRENTLY trgm_provider_date_index
ON table
USING gin (provider_id gin_trgm_ops, date_var)