On Sat, Jul 10, 2010 at 22:49, Guillaume Lelarge <guillaume@lelarge.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.
> 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.
> 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 :-)
--
Magnus Hagander
Me: http://www.hagander.net/
Work: http://www.redpill-linpro.com/