Re: Vector type (Re: challenging constraint situation - how do I make it) - Mailing list pgsql-general

From Tom Lane
Subject Re: Vector type (Re: challenging constraint situation - how do I make it)
Date
Msg-id 25132.1148649628@sss.pgh.pa.us
Whole thread Raw
In response to Vector type (Re: challenging constraint situation - how do I make it)  (Alban Hertroys <alban@magproductions.nl>)
Responses Re: Vector type (Re: challenging constraint situation -  (Alban Hertroys <alban@magproductions.nl>)
List pgsql-general
Alban Hertroys <alban@magproductions.nl> 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

pgsql-general by date:

Previous
From:
Date:
Subject: LDAP authentication
Next
From: Tom Lane
Date:
Subject: Re: Incomplete dump?