src/Pure/General/sql.scala
changeset 78207 8e1941d3f703
parent 78187 2df0f3604a67
child 78253 12d54a78bc0e
equal deleted inserted replaced
78206:f4f441edafca 78207:8e1941d3f703
   251     def tables: Tables = Tables.empty
   251     def tables: Tables = Tables.empty
   252 
   252 
   253     def transaction_lock[A](
   253     def transaction_lock[A](
   254       db: Database,
   254       db: Database,
   255       more_tables: Tables = Tables.empty,
   255       more_tables: Tables = Tables.empty,
   256       create: Boolean = false
   256       create: Boolean = false,
   257     )(body: => A): A = db.transaction { (tables ::: more_tables).lock(db, create = create); body }
   257       synchronized: Boolean = false,
       
   258     )(body: => A): A = {
       
   259       def run: A = db.transaction { (tables ::: more_tables).lock(db, create = create); body }
       
   260       if (synchronized) db.synchronized { run } else run
       
   261     }
   258 
   262 
   259     def vacuum(db: Database, more_tables: Tables = Tables.empty): Unit =
   263     def vacuum(db: Database, more_tables: Tables = Tables.empty): Unit =
   260       db.vacuum(tables = tables ::: more_tables)
   264       db.vacuum(tables = tables ::: more_tables)
   261 
   265 
   262     def make_table(name: String, columns: List[Column], body: String = ""): Table = {
   266     def make_table(name: String, columns: List[Column], body: String = ""): Table = {