BUG #3891: Multiple UPDATE doesn't handle UNIQUE constraint correctly

Поиск
Список
Период
Сортировка
От Adriaan van Os
Тема BUG #3891: Multiple UPDATE doesn't handle UNIQUE constraint correctly
Дата
Msg-id 200801210817.m0L8HlJl013855@wwwmaster.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #3891: Multiple UPDATE doesn't handle UNIQUE constraint correctly  (Euler Taveira de Oliveira <euler@timbira.com>)
Re: BUG #3891: Multiple UPDATE doesn't handle UNIQUE constraint correctly  (David Fetter <david@fetter.org>)
Список pgsql-bugs
The following bug has been logged online:

Bug reference:      3891
Logged by:          Adriaan van Os
Email address:      postgres@microbizz.nl
PostgreSQL version: 8.2.4
Operating system:   Mac OS X 10.5
Description:        Multiple UPDATE doesn't handle UNIQUE constraint
correctly
Details:

Suppose we have a table A with a UNIQUE column Name of type VARCHAR, a
PRIMARY KEY record_id of type INT4 and the following records

A
record_id   Name
1                  X
2                  Y

Furthermore, we have a temporary table temp_A with a UNIQUE column Name of
type VARCHAR, a PRIMARY KEY record_id of type INT4 and the following
records

temp_A
record_id   Name
1                  Y
2                  X

Now, we update table A with values from temporary table temp_A doing
something like

UPDATE "A" SET "Name" = "temp_A"."Name"  FROM "temp_A" WHERE "A".record_id =
"temp_A".record_id

This will cause a UNIQUE violation in de middle of the UPDATE statement,
although after completion of the statement there is no such violation.

Although deferred constraints are not yet implemented for Postgres, the docs
at <http://www.postgresql.org/docs/8.2/static/sql-set-constraints.html>
state:

   IMMEDIATE constraints are checked at the end of each statement.

Apparently, this is not correct, as in the above example constraints are
checked in the middle of a statement, rather than at the end.

I feel the docs are right here and the software wrong.

Sincerely,

Adriaan van Os

В списке pgsql-bugs по дате отправления:

Предыдущее
От: "Ottó Havasvölgyi"
Дата:
Сообщение: Re: Casting on the limit
Следующее
От: "Roman"
Дата:
Сообщение: BUG #3892: Invalid week determination