Restrição de exclusão em uma coluna de bitstring com operador bit a bit AND
Então eu estava lendo sobreRestrições de Exclusão no PostgreSQL e não consegui encontrar uma maneira de usar operadores bit-a-bit em bitstrings, e fiquei me perguntando se era possível.
Meu caso de uso é que eu tenho umname: text
coluna e umvalue: bit(8)
coluna. E eu queria criar uma restrição que basicamente diz isso:
ADD CONSTRAINT route_method_overlap
EXCLUDE USING gist(name WITH =, value WITH &)
Mas isso não funciona desde
operator & (bit, bit) não é um membro da família de operadores "gist_bit_ops"
Eu suponho que isso acontece porque o operador bit_ops & não retorna um booleano. Mas há uma maneira de fazer o que estou tentando fazer? Existe uma maneira de coagiroperator &
para lançar seu valor de retorno como um booleano?
Esqueceu o número da versão. Isto está no 9.1.4 com a extensão "btree_gist" instalada, tudo a partir dos repositórios do Ubuntu 12.04. Mas a versão não importa. Se houver correções / atualizações no upstream, posso instalar a partir dos repositórios. Eu ainda estou na fase de design disso.