UNIQUE, btree index allows duplicate records, if some fields are null

From: Bryce Nesbitt <bryce1(at)obviously(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: UNIQUE, btree index allows duplicate records, if some fields are null
Date: 2006-02-09 19:38:35
Message-ID: 43EB9A3B.2080507@obviously.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

This threw me for a loop. Is this my fault, or a
problem in postgres?

I have a table with the following:
"eg_vehicle_event_pkey" PRIMARY KEY, btree (event_id)
"no_duplicate_events" UNIQUE, btree (thing, other_thing,
"timestamp", number, other_number)

The "no_duplicate_events" constraint works fine, but if I insert records
where
"other_thing" is null, they all go in without complaint. I can insert as
many duplicates as I want.

I had expected two records, identical in all respects including the
null value, to be rejected by the constraint.

This is with:
PostgreSQL 7.4.1 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.2.3
20030502 (Red Hat Linux 3.2.3-20)

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2006-02-09 19:59:14 Re: UNIQUE, btree index allows duplicate records, if some fields are null
Previous Message Keith Worthington 2006-02-09 18:09:04 Re: Change definition of a view