W PostgreSQL 9.2.3 próbuję utworzyć tę uproszczoną tabelę:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING gist (user_id WITH =, startend WITH &&)
);
Ale pojawia się ten błąd:
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.
Dokumenty PostgreSQL używają tego przykładu, który nie działa dla mnie:
CREATE TABLE room_reservation (
room text,
during tsrange,
EXCLUDE USING gist (room WITH =, during WITH &&)
);
Ten sam komunikat o błędzie.
I ten , który też mi nie działa:
CREATE TABLE zoo (
cage INTEGER,
animal TEXT,
EXCLUDE USING gist (cage WITH =, animal WITH <>)
);
Ten sam komunikat o błędzie.
Jestem w stanie stworzyć to bez problemu:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING gist (startend WITH &&)
);
i to:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING btree (user_id WITH =)
);
Spędziłem sporo czasu na szukaniu wskazówek, jak wymyślić, jak to zrobić, lub dlaczego nie działa. Jakieś pomysły?