Причина в том, что для типа данных xid
(среди прочих) не определен оператор <>
.Попробуйте:
SELECT '123'::xid <> '123'::xid
Fails.
Вы можете обойти это ограничение, добавив уникальный индекс, подобный этому:
CREATE UNIQUE INDEX tbl_xid_col_uni_idx
ON tbl (cast(cast(xid_col AS text) AS int));