Re: proposal: operator exclusion constraints with cardinality

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Jeff Davis <pgsql(at)j-davis(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: proposal: operator exclusion constraints with cardinality
Date: 2009-11-02 03:49:32
Message-ID: 7095.1257133772@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Jeff Davis <pgsql(at)j-davis(dot)com> writes:
> It could go something like this (syntax still open for discussion, for
> illustration only):

> EXCLUSION (room CHECK WITH =,
> attendee CHECK WITH =,
> during CHECK WITH &&)
> CARDINALITY 30

There's an old design principle that says "the only good numbers in
computer science are 0, 1, and N" -- that is, if you need to allow more
than one of something, you should have no hard-wired upper bound on
how many of them you allow. The reason that meme comes to mind is that
I'm having difficulty seeing applications for this type of constraint.
I can certainly believe that people might like to enforce constraints
like "no more than N people are signed up for class X". The problem is
that they won't want the *same* N for every class, and that's what this
constraint design seems to require. What they'll want is N drawn from
some other table entry about the size of the classroom. If you can't
support that then the design isn't fully baked yet.

(Of course, the reason UNIQUE constraints are good is that they
correspond to the number 1 ;-))

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2009-11-02 04:09:28 Re: proposal: operator exclusion constraints with cardinality
Previous Message Tom Lane 2009-11-02 03:40:29 Re: Error on compile for Windows