Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: Vector type (Re: challenging constraint situation - how do I make it)


  • From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
  • To: Alban Hertroys <alban(at)magproductions(dot)nl>
  • Cc: Kenneth Downs <ken(at)secdat(dot)com>, Harald Armin Massa <haraldarminmassa(at)gmail(dot)com>, pgsql-general <pgsql-general(at)postgresql(dot)org>
  • Subject: Re: Vector type (Re: challenging constraint situation - how do I make it)
  • Date: Fri, 26 May 2006 09:20:28 -0400
  • Message-id: <25132(dot)1148649628(at)sss(dot)pgh(dot)pa(dot)us>

Alban Hertroys <alban(at)magproductions(dot)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



Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group