Re: Unique indexes not unique?

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: Jimmy Mäkelä <jimmy(dot)makela(at)agent25(dot)se>
Cc: "'pgsql-sql(at)postgresql(dot)org'" <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Unique indexes not unique?
Date: 2003-01-13 12:08:04
Message-ID: 20030113040014.Q53527-100000@megazone23.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Mon, 13 Jan 2003, [iso-8859-1] Jimmy Mkel wrote:

> I found that Postgres isn't behaving like I thought when using a unique index in
> combination with NULL-values...
> Is this a bug or specified in the SQL-standard? If its a bug, is it fixed in a
> recent version? We are using 7.2.3

AFAIK this is standard.

From the unique predicate (8.9),

If there are no two rows in T such that the value of each column in one
row is non-null and is equal to the value of the corresponding column in
the other row according to Subclause 8.2, "comparison predicate", then
the result of the unique predicate is true; otherwise, the result of
the unique predicate is false.

Unique constraints are defined in terms of the unique predicate.

> And another completely unrelated question... I have got a table with a composite
> index on A andBb and an index on A
> which I query with something like this:
>
> SELECT * FROM "table"
> WHERE (a = 1 OR a = 2 OR a = 3) AND b > 1232132 AND b < 123123123213123
>
> Postgres then chooses to use the index for A three times, which is really slow
> on my table...

On my dev (7.4devel) box I see it using the composite index three times,
but you haven't given explain output for the two queries or any statistics
information so that doesn't say much.

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message dev 2003-01-13 12:32:05 Re: Unique indexes not unique?
Previous Message Jimmy Mäkelä 2003-01-13 10:56:09 Re: Unique indexes not unique?