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 =)
);
私はかなりの時間を費やして、この機能をどのように実現するか、なぜ機能しないのかを理解するためのヒントを探しました。何か案は?