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

Re: Ticket 118: Exclusion constraints

From: guillaume <guillaume(at)lelarge(dot)info>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: Ticket 118: Exclusion constraints
Date: 2010-07-20 12:02:52
Message-ID: 88479f86033d85fa7257d598ad2b8670@localhost (view raw or flat)
Thread:
Lists: pgadmin-hackers
On Mon, 12 Jul 2010 12:13:03 +0200, Magnus Hagander <magnus(at)hagander(dot)net>
wrote:
> On Sat, Jul 10, 2010 at 22:49, Guillaume Lelarge
<guillaume(at)lelarge(dot)info>
> wrote:
>> Hi,
>>
>> At least, I finally did it :)
>>
>> This patch adds support for exclusion constraint (9.0 new feature). All
>> examples from Magnus's talk (Beyond Unique) work with this patch.
>>
>> Anyway, this patch needs more work:
>>
>> 1. Displayed in both Constraints and Indexes
>>
>> I don't know why but each exclusion constraint is displayed two times.
>> In the indexes node (where it doesn't belong), and in the constraints
>> node (where it belongs). Any idea why? should not be too hard to find
>> out, but I'm unable to find it right now.
> 
> How do we do it with Primary Keys? It's the same thing - both an index
> and a constraint. There should be some code to hide it, thus similar
> code should be needed here.
> 

Fixed.

>> 2. Need an icon
>>
>> I copied the unique constraint icon, but we really need another one for
>> this specific constraint.
>>
>> 3. Probably some misunderstanding of the feature
>>
>> Should we propose all operators for the columns? or just the ones
>> related to 1. the operator class 2. the column's type 3. something
else?
>> actually, I propose all of them. But I don't think this is what we
>> should do.
> 
> You need to show only commutative operators.
> 
> That may be we need to filter on oid=oprcom in pg_operator - I'm not
> sure of that though, I didn't really investigate, but it looks like a
> reasonable thing.
> 
> And yes, it should definitely be filtered on the column types.
> 

Done. The filter is a simple "(oprleft=<column's type OID> OR
oprright=<column's type OID>) AND oprcom > 0". The list is much lighter now
:)

>> In Magnus's talk, I see that only GiST is supported right now as an
>> index method. In PostgreSQL fine manual, it says that, to be usable, an
>> index should provide the amgettuple method. And I see three of them
>> support this method. Who's wrong? :)
> 
> Trust The Fine Manual.
> 
> Always remember that some of those things may also have changed since
> my talk :-)
> 

OK.

So here is version 2 of this patch. Still lacks the icon. I would draw one
if I had any idea on what to draw :)


-- 
Guillaume
 http://www.postgresql.fr
 http://dalibo.com

Attachment: ticket118_v2.patch.bz2
Description: application/x-bzip2 (9.2 KB)

In response to

Responses

pgadmin-hackers by date

Next:From: Dave PageDate: 2010-07-20 12:05:30
Subject: Re: Ticket 118: Exclusion constraints
Previous:From: guillaumeDate: 2010-07-20 09:05:36
Subject: Re: role support

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group