In a message to Ed Loehr and pgsql-general, Lincoln Yeoh wrote:
>
> Transaction A
> begin;
> insert into test (a,b) select 4,'four' from test
> where not exists (select * from test where a=4);
> 
> Transaction B
> begin;
> insert into test (a,b) select 4,'four' from test
> where not exists (select * from test where a=4);
> 
> Then you do a commit on both, and you end up with two rows.

This is dissapointing indeed! What this means is that Postgresql
transactions are, in fact, not truely serializable. The concurrent
execution of these two transactions is not equivalent to some serial
execution.

Have to read up on the documentation, which I thought was claiming
serializability.

Joachim

-- 
private:  [EMAIL PROTECTED]    (http://www.kraut.bc.ca)
work:     [EMAIL PROTECTED]  (http://www.mercury.bc.ca)

Reply via email to