Re: UPDATE has a bug to update tables with an index of 2

Stephan Szabo <sszabo@megazone23.bigpanda.com>

From: Stephan Szabo <sszabo@megazone23.bigpanda.com>
To: Ian Barwick <barwick@gmx.net>
Cc: Andreas Schmitz <andreas.schmitz@as-dataservice.de>, <pgsql-bugs@postgresql.org>
Date: 2003-05-17T16:15:09Z
Lists: pgsql-bugs
On Sat, 17 May 2003, Ian Barwick wrote:

> On Friday 16 May 2003 21:46, Andreas Schmitz wrote:
>
> > Please enter a FULL description of your problem:
> > ------------------------------------------------
> >
> > Short: UPDATE has a bug to update tables with an index of 2 columns
> (...)
> > update test2 set v2=v2+2;
> > ERROR:  Duplizierter Wert kann nicht in Unique-Index uq_test
> >         eingefgt werden
>
> -> "Cannot insert a duplicate key into unique index uq_test"
>
> I would contend this is not a bug but a feature (or at most
> not-yet-implemented functionality, i.e. no ability to defer
> constraints other than foreign keys).

IIRC, it's a known bug.  The constraint is checked at the wrong time, even
for non-deferred unique constraints the check is supposed to happen after
all the rows have been changed not as the rows are being changed.