equal
deleted
inserted
replaced
251 } |
251 } |
252 |
252 |
253 def execute(): Boolean = rep.execute() |
253 def execute(): Boolean = rep.execute() |
254 def execute_query(): Result = new Result(this, rep.executeQuery()) |
254 def execute_query(): Result = new Result(this, rep.executeQuery()) |
255 |
255 |
256 def close(): Unit = rep.close |
256 def close(): Unit = rep.close() |
257 } |
257 } |
258 |
258 |
259 |
259 |
260 /* results */ |
260 /* results */ |
261 |
261 |
320 |
320 |
321 /* connection */ |
321 /* connection */ |
322 |
322 |
323 def connection: Connection |
323 def connection: Connection |
324 |
324 |
325 def close(): Unit = connection.close |
325 def close(): Unit = connection.close() |
326 |
326 |
327 def transaction[A](body: => A): A = |
327 def transaction[A](body: => A): A = |
328 { |
328 { |
329 val auto_commit = connection.getAutoCommit |
329 val auto_commit = connection.getAutoCommit |
330 try { |
330 try { |
481 } |
481 } |
482 try { |
482 try { |
483 val connection = DriverManager.getConnection(url, user, password) |
483 val connection = DriverManager.getConnection(url, user, password) |
484 new Database(name, connection, port_forwarding) |
484 new Database(name, connection, port_forwarding) |
485 } |
485 } |
486 catch { case exn: Throwable => port_forwarding.foreach(_.close); throw exn } |
486 catch { case exn: Throwable => port_forwarding.foreach(_.close()); throw exn } |
487 } |
487 } |
488 |
488 |
489 class Database private[PostgreSQL]( |
489 class Database private[PostgreSQL]( |
490 name: String, val connection: Connection, port_forwarding: Option[SSH.Port_Forwarding]) |
490 name: String, val connection: Connection, port_forwarding: Option[SSH.Port_Forwarding]) |
491 extends SQL.Database |
491 extends SQL.Database |
507 |
507 |
508 def insert_permissive(table: SQL.Table, sql: SQL.Source = ""): SQL.Source = |
508 def insert_permissive(table: SQL.Table, sql: SQL.Source = ""): SQL.Source = |
509 table.insert_cmd("INSERT", |
509 table.insert_cmd("INSERT", |
510 sql = sql + (if (sql == "") "" else " ") + "ON CONFLICT DO NOTHING") |
510 sql = sql + (if (sql == "") "" else " ") + "ON CONFLICT DO NOTHING") |
511 |
511 |
512 override def close(): Unit = { super.close; port_forwarding.foreach(_.close) } |
512 override def close(): Unit = { super.close(); port_forwarding.foreach(_.close()) } |
513 } |
513 } |
514 } |
514 } |