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

PostgreSQL GIN-indeks på array af uuid

Bemærk: dette svar er forældet, da dette nu er en del af en standard PostgreSQL, se tbussmanns andet svar (som du bør stemme op).

Oprindeligt svar:

Dette kan gøres ved hjælp af følgende operatorklasse:

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;

Kredit til dette for at pege mig i den rigtige retning.

Den relevante dokumentation er i Interface-udvidelser til indekser , især operatørstrategi og funktionsnumre for GIN er beskrevet der.



  1. PostgreSQL, kompleks forespørgsel til beregning af ingredienser efter opskrift

  2. Hvorfor er det muligt at bruge numeriske strengværdier til at indstille heltalsfelter i MySQL, og er dette en funktion, der altid vil fungere?

  3. Fejl ved opdeling af mysql-data i 3 kolonner

  4. Datatype til at gemme længde/breddegrad i Mysql