sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL GIN index na poli uuid

Poznámka: tato odpověď je zastaralá, protože je nyní součástí standardního PostgreSQL, viz další odpověď tbussmanna (kterou byste měli hlasovat).

Původní odpověď:

To lze provést pomocí následující třídy operátorů:

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;

Poděkování toto za nasměrování správným směrem.

Příslušná dokumentace je v Rozšíření rozhraní k indexům je zde popsána zejména strategie operátora a čísla funkcí pro GIN.



  1. Výraz dotazu Django pro vypočítaná pole, která vyžadují podmínky a přetypování

  2. Jak vrátit výsledky dotazu jako seznam oddělený čárkami v PostgreSQL

  3. Úroveň izolace pro jeden dotaz SELECT s PHP mysqli_query

  4. Vrátit všechny skupiny souborů pro aktuální databázi na serveru SQL Server