> Interesting. Playing with some variants of your example shows that
> UNIQUE works fine *unless* there is another column marked PRIMARY KEY.
> Then the UNIQUE constraint is ignored. Looks like a simple logic bug in
> the table-definition expander.
> A look at the CVS logs reveals this apparently related entry for
> parser/analyze.c:
> revision 1.102
> date: 1999/05/12 07:17:18; author: thomas; state: Exp; lines: +68 -24
> Fix problem with multiple indices defined if using column- and table-
> constraints. Reported by Tom Lane.
> Now, check for duplicate indices and retain the one which is a primary-key.
Yow! The problem reported earlier (by you, so you share some blame! ;)
was that if one specified a primary key *and* a unique constraint, and
they both pointed to the same column, then you got two indices
created. So I tried to go through the list of indices and drop any
which seemed to be the same as the primary key index.
I apparently hadn't tested for this reported case (obviously :() but
it should be easy to fix. I'll look at it soon, unless someone already
has.
- Thomas
--
Thomas Lockhart lockhart@alumni.caltech.edu
South Pasadena, California