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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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 Content-Type Size
ticket118_v2.patch.bz2 application/x-bzip2 9.2 KB

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2010-07-20 12:05:30 Re: Ticket 118: Exclusion constraints
Previous Message guillaume 2010-07-20 09:05:36 Re: role support