Итак, я только что читал об ограничениях исключенияв PostgreSQL, и я не мог найти способ использовать побитовые операторы на битовых строках, и мне было интересно, если это было возможно.
Мой вариант использования: у меня есть столбец name: text
и столбец value: bit(8)
. И я хотел создать ограничение, которое в основном говорит следующее:
ADD CONSTRAINT route_method_overlap
EXCLUDE USING gist(name WITH =, value WITH &)
Но это не работает, поскольку
оператор &(bit,bit) не является членом семейства операторов "gist_bit_ops"
Я предполагаю, что это потому, что оператор bit_ops & не возвращает логическое значение. Но есть ли способ сделать то, что я пытаюсь сделать? Есть ли способ заставить оператор &
преобразовать возвращаемое значение в логическое значение?
Забыли номер версии. Это на 9.1.4 с установленным расширением «btree_gist», все из репозиториев Ubuntu 12.04. Но версия не имеет значения. Если есть исправления/обновления вверх по течению, я могу установить из репозиториев. Я все еще на стадии проектирования этого.