У 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 =)
);
Я витратив зовсім небагато часу на пошуки підказок, як з'ясувати, як зробити цю роботу, або з'ясувати, чому це не вийде. Якісь ідеї?