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

Come usare uuid con il tipo di indice Gist postgresql?

Postgres 10 o più recente

btree_gist ora copre anche il tipo di dati uuid , come Paolo ha commentato . (E alcuni altri tipi di dati, in particolare tutti enum tipi.)

Ora tutto ciò che devi fare:installare l'estensione una volta per database:

CREATE EXTENSION btree_gist;

Allora il tuo indice dovrebbe funzionare.

Correlati:

Postgres 9.6 o precedente

(Risposta originale.)
Normalmente suggerirei il modulo aggiuntivo btree_gist , ma il tipo uuid è non coperto da esso.

In teoria, poiché un UUID è a 128-bit quantity (per documentazione ), il modo più efficiente sarebbe convertirlo in due bigint o float8 ai fini dell'indice. Ma nessuno di questi calchi è definito in Postgres standard.

Ho trovato un

Per utilizzare questo indice funzionale, le query devono corrispondere a tale espressione. Puoi usare l'abbreviazione "value"::text nelle query (ma non nella definizione dell'indice senza aggiungere altre parentesi).

A parte:non utilizzare value come nome della colonna è una parola riservata in SQL standard .

La domanda è:perché ti serve l'indice GiST. La soluzione migliore dipende dall'obiettivo.