PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Indeks GIN PostgreSQL na tablicy uuid

Uwaga: ta odpowiedź jest przestarzała, ponieważ jest teraz częścią standardowego PostgreSQL, zobacz inną odpowiedź tbussmanna (którą powinieneś zagłosować).

Oryginalna odpowiedź:

Można to zrobić za pomocą następującej klasy operatora:

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;

Kredyty dla tego za wskazanie mi właściwego kierunku.

Odpowiednia dokumentacja znajduje się w Łączenie rozszerzeń z indeksami , w szczególności opisano tam strategię operatora i numery funkcji dla WZ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Spring Data zwraca listę<Object[]>

  2. Wykonaj VACUUM FULL z JPA

  3. Jak Atanh() działa w PostgreSQL

  4. Pobieraj agregaty dla dowolnych przedziałów czasu

  5. Podzielić ogromną (95Mb) tablicę JSON na mniejsze porcje?