diff --git a/doc/src/sgml/mvcc.sgml b/doc/src/sgml/mvcc.sgml index f88b16e..5002138 100644 --- a/doc/src/sgml/mvcc.sgml +++ b/doc/src/sgml/mvcc.sgml @@ -100,6 +100,14 @@ phenomena caused by interactions?) + + The concepts covered in this section are + presented without examples of the behaviors described. The internet, + including and espcially the PostgreSQL Wiki, is + an excellent resource to learn more about circumstances under which these + data phenomena occur, and what the results look like when they do. + + The phenomena which are prohibited at various levels are: @@ -150,12 +158,12 @@ transaction isolation level - The four transaction isolation levels and the corresponding - behaviors are described in . + The four SQL transaction isolation levels, and their corresponding + behaviors, are described in . - Standard <acronym>SQL</acronym> Transaction Isolation Levels + <acronym>SQL</acronym> Standard Transaction Isolation Levels @@ -256,6 +264,89 @@ + The three PostgreSQL transaction isolation levels, and their corresponding + behaviors, are described in . + + +
+ <productname>PostgreSQL</productname> Transaction Isolation Levels + + + + + Isolation Level + + + Dirty Read + + + Nonrepeatable Read + + + Phantom Read + + + + + + + Read committed + + + Not possible + + + Possible + + + Possible + + + + + + Repeatable read + + + Not possible + + + Not possible + + + Not Possible + + + + + + Serializable + + + Not possible + + + Not possible + + + Not possible + + + + +
+ + + As the table makes clear there is no difference in the potential phenomena + at the REPEATABLE READ and SERIALIZABLE transaction isolation levels; but + the phenomena listed only pertain to the data seen by the transaction. + The difference is that REPEATABLE READ will only serial-fail + if two transactions attempt to modify the same record while SERIALIZABLE will + also serial-fail if one transaction modifies a record that another transaction + has only read. + + + To set the transaction isolation level of a transaction, use the command .