btree_gin
fournit des échantillons de classes d'opérateurs
GIN qui codent un comportement équivalent à un B-tree pour les types
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
et tous les types enum
.
En général, ces classes d'opérateurs ne sont pas plus rapides que les méthodes standard d'indexation B-tree équivalentes, et il leur manque une fonctionnalité majeure du code B-tree standard : la capacité à forcer l'unicité. Toutefois, elles sont utiles pour tester GIN et comme base pour développer d'autres classes d'opérateurs GIN. Par ailleurs, pour des requêtes qui testent à la fois une colonne indexable via GIN et une colonne indexable par B-tree, il peut être plus efficace de créer un index GIN multi-colonnes qui utilise une de ces classes d'opérateurs que de créer deux index séparés qui devront être combinés par une opération de bitmap ET.
Ce module est considéré comme « trusted », ce qui signifie qu'il
peut être installé par des utilisateurs simples (sans attribut
SUPERUSER
) et qui ont l'attribut CREATE
sur la base de données courante.
CREATE TABLE test (a int4); -- crée l'index CREATE INDEX testidx ON test USING GIN (a); -- requête SELECT * FROM test WHERE a < 10;
Teodor Sigaev (<teodor@stack.net>
) et Oleg Bartunov
(<oleg@sai.msu.su>
). Voir http://www.sai.msu.su/~megera/oddmuse/index.cgi/Gin pour plus
d'informations.