F.49. pg_trgm_mchar

pg_trgm_mchar — расширение Postgres Pro, которое обеспечивает быстрый поиск схожих строк типов mchar и mvarchar на основе тригамм. Функциональность этого расширения во многом пересекается с функциональностью pg_trgm: оно предоставляет аналогичные функции и операторы, адаптированные для типов mchar и mvarchar. Однако для поиска по столбцам этих типов pg_trgm_mchar поддерживает только классы операторов GIN.

Примечание

Оператор LIKE поддерживает только операнды типов (mchar, mvarchar). Операции с операндами типов (mchar, mchar) не поддерживаются.

F.49.1. Установка

Расширение pg_trgm_mchar включено в состав Postgres Pro Standard как стандартное расширение. Оно зависит как от pg_trgm, так и от mchar. Эти модули необходимо установить до создания pg_trgm_mchar, либо можно установить все зависимости автоматически с помощью команды:

CREATE EXTENSION pg_trgm_mchar CASCADE;

Также, если оба требуемых модуля уже установлены, расширение pg_trgm_mchar можно включить, выполнив следующий запрос:

CREATE EXTENSION pg_trgm_mchar;

Поскольку типы данных mchar и mvarchar используют библиотеку ICU, её наличие также необходимо для корректной работы расширения.

F.49.2. Пример

Поскольку pg_trgm_mchar функционирует практически идентично pg_trgm, за примерами использования обратитесь к документации pg_trgm.

Однако процессы создания индексов различаются: расширение pg_trgm_mchar использует семейство операторов gin_trgm_ops_mvarchar/gin_trgm_ops_mchar вместо gin_trgm_ops, используемого в pg_trgm:

CREATE TABLE test_trgm(t mvarchar);
CREATE INDEX trgm_idx ON test_trgm USING gin (t gin_trgm_ops_mvarchar);
...
CREATE TABLE test_trgm_mchar(t mchar);
CREATE INDEX trgm_mchar_idx ON test_trgm_mchar USING gin (t gin_trgm_ops_mchar);

Во всех остальных случаях поведение этих двух модулей идентично.