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

btree_gin — классы операторов GIN с поведением B-дерева

примечание

Эта страница переведена при помощи нейросети GigaChat.

btree_gin предоставляет пример классов операторов 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.

В общем случае эти классы операторов не превзойдут эквивалентные стандартные методы индексации B-дерева, и им не хватает одной важной функции стандартного кода B-дерева: возможности обеспечения уникальности. Однако они полезны для тестирования GIN и в качестве основы для разработки других классов операторов GIN. Кроме того, для запросов, которые проверяют как столбец с индексом GIN, так и столбец с индексом B-дерева, может быть более эффективно создать многостолбцовый индекс GIN, который использует один из этих классов операторов, чем создавать два отдельных индекса, которые должны были бы объединяться через AND битовой карты.

Этот модуль считается «доверенным», то есть его могут устанавливать неподключенные пользователи, обладающие привилегией CREATE на текущей базе данных.

Пример использования

CREATE TABLE test (a int4);
-- create index
CREATE INDEX testidx ON test USING GIN (a);
-- query
SELECT * FROM test WHERE a < 10;