Question

Dans PostgreSQL 9.2.3, j'essaie de créer ce tableau simplifié:

CREATE TABLE test (
    user_id INTEGER,
    startend TSTZRANGE,
    EXCLUDE USING gist (user_id WITH =, startend WITH &&)
);

Mais j'obtiens cette erreur:

ERROR:  data type integer has no default operator class for access method "gist"
HINT:  You must specify an operator class for the index or define
       a default operator class for the data type.

La Les documents postgresql utilisent cet exemple Ce qui ne fonctionne pas pour moi:

CREATE TABLE room_reservation (
    room text,
    during tsrange,
    EXCLUDE USING gist (room WITH =, during WITH &&)
);

Même message d'erreur.

Et celui-là, ce qui ne fonctionne pas non plus pour moi:

CREATE TABLE zoo (
    cage   INTEGER,
    animal TEXT,
    EXCLUDE USING gist (cage WITH =, animal WITH <>)
);

Même message d'erreur.

Je suis en mesure de créer cela sans aucun problème:

CREATE TABLE test (
    user_id INTEGER,
    startend TSTZRANGE,
    EXCLUDE USING gist (startend WITH &&)
);

et ça:

CREATE TABLE test (
    user_id INTEGER,
    startend TSTZRANGE,
    EXCLUDE USING btree (user_id WITH =)
);

J'ai passé pas mal de temps à chercher des conseils sur la façon de comprendre comment faire fonctionner, ou de comprendre pourquoi cela ne fonctionnera pas. Des idées?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top