PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL-GIN-Index im Array von uuid

Hinweis: Diese Antwort ist veraltet, da dies jetzt Teil eines Standard-PostgreSQL ist, siehe die andere Antwort von tbussmann (die Sie positiv bewerten sollten).

Ursprüngliche Antwort:

Dies kann mit der folgenden Operatorklasse erfolgen:

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;

Dank an dies dafür, dass du mich in die richtige Richtung gewiesen hast.

Die relevante Dokumentation befindet sich in Schnittstellenerweiterungen zu Indizes , insbesondere sind dort die Bedienstrategie und Funktionsnummern für GIN beschrieben.