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 |
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 |