В PostgreSQL 9.2.3 я пытаюсь создать эту упрощенную таблицу:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING gist (user_id WITH =, startend WITH &&)
);
Но я получаю эту ошибку:
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.
Документы PostgreSQL используют этот пример, который мне не подходит:
CREATE TABLE room_reservation (
room text,
during tsrange,
EXCLUDE USING gist (room WITH =, during WITH &&)
);
То же сообщение об ошибке.
И этот , который не работает для меня также:
CREATE TABLE zoo (
cage INTEGER,
animal TEXT,
EXCLUDE USING gist (cage WITH =, animal WITH <>)
);
То же сообщение об ошибке.
Я могу создать это без каких-либо проблем:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING gist (startend WITH &&)
);
и это:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING btree (user_id WITH =)
);
Я потратил довольно много времени в поисках подсказок, чтобы выяснить, как заставить это работать, или выяснить, почему это не будет работать. Любые идеи?