Transaction isolation with concurrent increments

Поиск
Список
Период
Сортировка
От Nico Erichsen
Тема Transaction isolation with concurrent increments
Дата
Msg-id 20020603195316.76CE04760D5@postgresql.org
обсуждение исходный текст
Ответы Re: Transaction isolation with concurrent increments  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
Well, I'm a relative newbie to SQL, but I have been told that this behaviour
is a bug. I hope I didn't misunderstand something.


To reproduce, first create a table 'counters' that looks like that:

 counter1
----------
        0
(1 row)


Then execute the following commands parallelly on two psql terminals:

    set transaction isolation level serializable;
    begin;
    update counters set counter1=(select counter1+1 from counters);

(The second psql terminal will not return from executing the last statement)

Commit on both terminals, then do a select again. The result will be:

 counter1
----------
        1
(1 row)

Oops! ;-)



If instead I use an update statement like that:

    update counters set counter1=counter1+1;

psql behaves like expected, i.E. the result is 2.


--
Grüße,

Nico

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

Предыдущее
От: "Rob Butler"
Дата:
Сообщение: Re: PQescapeString and PQescapeBytea not exported during win 32 build
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Transaction isolation with concurrent increments