Transaction isolation with concurrent increments - Mailing list pgsql-bugs

From Nico Erichsen
Subject Transaction isolation with concurrent increments
Date
Msg-id 20020603195316.76CE04760D5@postgresql.org
Whole thread Raw
Responses Re: Transaction isolation with concurrent increments  (Tom Lane <tgl@sss.pgh.pa.us>)
List 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 by date:

Previous
From: "Rob Butler"
Date:
Subject: Re: PQescapeString and PQescapeBytea not exported during win 32 build
Next
From: Tom Lane
Date:
Subject: Re: Transaction isolation with concurrent increments