btree_gin

Модуль btree_gin предоставляет типовые классы операторов GIN, реализующие поведение, схожее с тем, что реализуют классы В-дерева, для типов данных 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).

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

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


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

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

Авторы

Федор Сигаев (teodor@stack.net) и Олег Бартунов (oleg@sai.msu.su). Дополнительную информацию можно найти на странице http://www.sai.msu.su/~megera/oddmuse/index.cgi/Gin.