Перейти к основному содержимому

btree_gin. Показательные классы операторов GIN

В исходном дистрибутиве установлено по умолчанию: нет.

Связанные компоненты: отсутствуют.

Схема размещения: ext.

Модуль предоставляет показательные классы операторов GIN, которые реализуют поведение, подобное поведению обычных классов B-дерева, для следующих типов данных:

  • int2;
  • int4;
  • int8;
  • float4;
  • float8;
  • timestamp with time zone;
  • timestamp without time zone;
  • time with time zone;
  • time without time zone;
  • date;
  • interval;
  • oid;
  • money;
  • char;
  • varchar;
  • text;
  • bytea;
  • bit;
  • varbit;
  • macaddr;
  • macaddr8;
  • inet;
  • cidr;
  • uuid;
  • name;
  • bool;
  • bpchar;
  • все типы перечислений (enum).

Классы расширения btree_gin можно применять для тестирования операторов GIN или взять их за основу для разработки других операторов. Для запросов, где проверяются столбцы с индексом GIN и индексом-B-деревом, может быть эффективней реализовать составной индекс GIN, а не использовать два отдельных индекса.

Доработка

Не проводилась.

Ограничения

Существуют следующие ограничения:

  • классы операторов GIN не будут работать быстрее аналогичных стандартных методов индекса-B-tree;
  • нет возможности ограничивать уникальность.

Установка

Расширение могут устанавливать пользователи, имеющие право CREATE в текущей базе данных:

CREATE EXTENSION btree_gin SCHEMA ext;

Настройка

Не требуется.

Использование модуля

Использование btree_gin вместо btree:

CREATE TABLE test (a int4);
-- создать индекс
CREATE INDEX testidx ON test USING GIN (a);
-- запрос
SELECT * FROM test WHERE a < 10;

Ссылки на документацию разработчика:

Дополнительно поставляемый модуль btree_gin: https://www.postgresql.org/docs/13/btree-gin.html.