PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Indice GIN PostgreSQL sull'array di uuid

Nota: questa risposta è obsoleta poiché ora fa parte di un PostgreSQL standard, vedi l'altra risposta di tbussmann (che dovresti votare).

Risposta originale:

Questo può essere fatto usando la seguente classe di operatori:

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;

Crediti a questo per avermi indirizzato nella giusta direzione.

La documentazione pertinente si trova in Estensioni di interfaccia agli indici , in particolare sono descritti la strategia dell'operatore e i numeri di funzione per GIN.