PostgreSQL 9.2.3'te bu basitleştirilmiş tabloyu oluşturmaya çalışıyorum:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING gist (user_id WITH =, startend WITH &&)
);
Ancak bu hatayı alıyorum:
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 dokümanlar Bu örneği kullanmak benim için çalışmaz:
CREATE TABLE room_reservation (
room text,
during tsrange,
EXCLUDE USING gist (room WITH =, during WITH &&)
);
Aynı hata mesajı.
Ve bu benim için de işe yaramıyor:
CREATE TABLE zoo (
cage INTEGER,
animal TEXT,
EXCLUDE USING gist (cage WITH =, animal WITH <>)
);
Aynı hata mesajı.
Bunu sorunsuz bir şekilde oluşturabiliyorum:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING gist (startend WITH &&)
);
ve bu:
CREATE TABLE test (
user_id INTEGER,
startend TSTZRANGE,
EXCLUDE USING btree (user_id WITH =)
);
Bu işin nasıl yapıldığını ya da neden işe yaramayacağını bulmak için ipuçlarını aramaya epey zaman harcadım. Herhangi bir fikir?