Как определить класс оператора для составного типа в PostgreSQL? - PullRequest
0 голосов
/ 25 июня 2018

у меня составной тип. И я хочу определить для него ограничение исключения, которое также будет сочетаться с исключениями диапазона, но при этом получится следующая ошибка.


create type example_t as (
    x uuid,
    y text
);

create table example (
    id example_t not null,
    time tstzrange not null,

    exclude using gist (id with =, time with &&)
);

ERROR: data type example_t 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. SQL state: 42704

Как определить класс оператора для составного типа 'example_t'?

1 Ответ

0 голосов
/ 25 июня 2018

Сложно определить новый класс операторов GiST.Вам нужно определить вспомогательные функции и соответствующие стратегии.См. документацию для примера того, как это делается с использованием функций C.

Но я думаю, что было бы гораздо проще не включать столбец типа example_t в ограничение исключения, ноотдельные элементы id.x и id.y.Таким образом, вы, вероятно, сможете ладить с классами операторов, определенными в модуле contrib btree_gist.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...