more robust transactions;
authorwenzelm
Wed, 08 Mar 2023 22:22:35 +0100
changeset 77591 3f3dcf9f53f1
parent 77590 edc96be6b939
child 77592 832139c1b268
more robust transactions;
src/Pure/General/sql.scala
--- a/src/Pure/General/sql.scala	Wed Mar 08 22:08:48 2023 +0100
+++ b/src/Pure/General/sql.scala	Wed Mar 08 22:22:35 2023 +0100
@@ -490,7 +490,9 @@
     host: String = "",
     port: Int = 0,
     ssh: Option[SSH.Session] = None,
-    ssh_close: Boolean = false
+    ssh_close: Boolean = false,
+    // see https://www.postgresql.org/docs/current/transaction-iso.html
+    transaction_isolation: Int = Connection.TRANSACTION_SERIALIZABLE
   ): Database = {
     init_jdbc
 
@@ -518,6 +520,7 @@
       }
     try {
       val connection = DriverManager.getConnection(url, user, password)
+      connection.setTransactionIsolation(transaction_isolation)
       new Database(name, connection, port_forwarding)
     }
     catch { case exn: Throwable => port_forwarding.foreach(_.close()); throw exn }