Remarque : cette réponse est obsolète car elle fait maintenant partie d'un PostgreSQL standard, voir l'autre réponse de tbussmann (que vous devriez voter pour).
Réponse originale :
Cela peut être fait en utilisant la classe d'opérateur suivante :
CREATE OPERATOR CLASS _uuid_ops DEFAULT
FOR TYPE _uuid USING gin AS
OPERATOR 1 &&(anyarray, anyarray),
OPERATOR 2 @>(anyarray, anyarray),
OPERATOR 3 <@(anyarray, anyarray),
OPERATOR 4 =(anyarray, anyarray),
FUNCTION 1 uuid_cmp(uuid, uuid),
FUNCTION 2 ginarrayextract(anyarray, internal, internal),
FUNCTION 3 ginqueryarrayextract(anyarray, internal, smallint, internal, internal, internal, internal),
FUNCTION 4 ginarrayconsistent(internal, smallint, anyarray, integer, internal, internal, internal, internal),
STORAGE uuid;
Crédits à ceci pour m'avoir orienté dans la bonne direction.
La documentation pertinente se trouve dans Interfaçage des extensions aux index , en particulier la stratégie de l'opérateur et les numéros de fonction pour GIN y sont décrits.