equal
deleted
inserted
replaced
453 catch { case exn: Throwable => connection.rollback(savepoint); throw exn } |
453 catch { case exn: Throwable => connection.rollback(savepoint); throw exn } |
454 } |
454 } |
455 finally { connection.setAutoCommit(auto_commit) } |
455 finally { connection.setAutoCommit(auto_commit) } |
456 } |
456 } |
457 |
457 |
458 private var _transaction_count: Int = 0 |
|
459 private def transaction_count(): Int = |
|
460 synchronized { _transaction_count += 1; _transaction_count } |
|
461 |
|
462 def transaction_lock[A]( |
458 def transaction_lock[A]( |
463 tables: Tables, |
459 tables: Tables, |
464 create: Boolean = false, |
460 create: Boolean = false, |
465 label: String = "", |
461 label: String = "", |
466 log: Logger = new System_Logger |
462 log: Logger = new System_Logger |
472 case "true" => Time.min |
468 case "true" => Time.min |
473 case "false" | "" => Time.max |
469 case "false" | "" => Time.max |
474 case s => error("Bad system property " + prop + ": " + quote(s)) |
470 case s => error("Bad system property " + prop + ": " + quote(s)) |
475 } |
471 } |
476 |
472 |
477 val trace_count = transaction_count() |
473 val trace_count = - SQL.transaction_count() |
478 val trace_start = Time.now() |
474 val trace_start = Time.now() |
479 var trace_nl = false |
475 var trace_nl = false |
480 |
476 |
481 def trace(msg: String, nl: Boolean = false): Unit = { |
477 def trace(msg: String, nl: Boolean = false): Unit = { |
482 val trace_time = Time.now() - trace_start |
478 val trace_time = Time.now() - trace_start |
562 if (strict || !tables.contains(table.name)) { |
558 if (strict || !tables.contains(table.name)) { |
563 execute_statement("CREATE VIEW " + table + " AS " + { table.query; table.body }) |
559 execute_statement("CREATE VIEW " + table + " AS " + { table.query; table.body }) |
564 } |
560 } |
565 } |
561 } |
566 } |
562 } |
|
563 |
|
564 |
|
565 private val transaction_count = Counter.make() |
567 } |
566 } |
568 |
567 |
569 |
568 |
570 |
569 |
571 /** SQLite **/ |
570 /** SQLite **/ |