Nicolas Barbier <nicolas.barb...@gmail.com> wrote:
 
>>>>>>> Switch to T1:
> 
> 1> COMMIT; -- Commit the insertion...
> COMMIT
> 
>>>>>>> T2 continues:
> 
> DELETE 1
> T2> COMMIT; -- Commit the deletion of a with i = 1.
> COMMIT
> T2> SELECT * FROM b EXCEPT SELECT * FROM a;
>  a_id
> ------
>     1
> (1 Zeile)
> 
> Woops.
 
This is exactly the sort of issue for which true serializable
behavior will provide a solution.  I will be offering a patch to
implement that for 9.1 once 9.0 settles down.  FWIW when you commit
T1, the patched code rolls back T2 with this message:
 
T2> DELETE FROM a WHERE i = 1;
ERROR:  could not serialize access due to read/write dependencies
among transactions
HINT:  The transaction might succeed if retried.
 
Thanks for the example; I will it to the others.
 
-Kevin

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to