Alban Hertroys <alban@xxxxxxxxxxxxxxxxx> writes: > Tom Lane wrote: >> Except that what you want is to forbid overlap, not forbid equality. >> This is not possible with btree-based unique indexes, because btree >> will not like an opclass whose "equality" member is not transitive. > With what I have in mind, both overlap and equality would violate the > unique constraint. I don't quite see why someone'd want to forbid > overlap but to allow equality; isn't not allowing equality the whole > point of a unique constraint? You're missing the point. Letting "~" represent the operator that tests for interval-overlap, we can have A -------------- B ------------------ C ---------------- so that A ~ B and B ~ C but not A ~ C. This is too much unlike normal equality for a btree to work with "~" as the "equality" operator. regards, tom lane