通过创建操作符实现类型转换对比:
CREATE OR REPLACE FUNCTION bit_equal_integer(BIT,integer) RETURNS BOOLEAN language sql
AS $$select $1::int = $2;$$;
CREATE OR REPLACE FUNCTION integer_equal_bit(integer,BIT) RETURNS BOOLEAN language sql
AS $$select $1 = $2::int;$$;
CREATE OPERATOR = (
LEFTARG = bit,
RIGHTARG = integer,
FUNCTION = bit_equal_integer,
COMMUTATOR = =,
NEGATOR = !=,
HASHES, MERGES
);
CREATE OPERATOR = (
LEFTARG = integer,
RIGHTARG = bit,
FUNCTION = integer_equal_bit,
COMMUTATOR = =,
NEGATOR = !=,
HASHES, MERGES
);