src/Pure/General/sql.scala
changeset 77540 c537905c2125
parent 77537 1bbf29ec9ce3
child 77541 9d9b30741fc4
--- a/src/Pure/General/sql.scala	Mon Mar 06 15:01:44 2023 +0100
+++ b/src/Pure/General/sql.scala	Mon Mar 06 15:12:37 2023 +0100
@@ -377,6 +377,8 @@
     def using_statement[A](sql: Source)(f: Statement => A): A =
       using(statement(sql))(f)
 
+    def execute_statement(sql: Source): Unit = using_statement(sql)(_.execute())
+
     def update_date(stmt: Statement, i: Int, date: Date): Unit
     def date(res: Result, column: Column): Date
 
@@ -393,16 +395,15 @@
     }
 
     def create_table(table: Table, strict: Boolean = false, sql: Source = ""): Unit =
-      using_statement(table.create(strict, sql_type) + SQL.separate(sql))(_.execute())
+      execute_statement(table.create(strict, sql_type) + SQL.separate(sql))
 
     def create_index(table: Table, name: String, columns: List[Column],
         strict: Boolean = false, unique: Boolean = false): Unit =
-      using_statement(table.create_index(name, columns, strict, unique))(_.execute())
+      execute_statement(table.create_index(name, columns, strict, unique))
 
     def create_view(table: Table, strict: Boolean = false): Unit = {
       if (strict || !tables.contains(table.name)) {
-        val sql = "CREATE VIEW " + table + " AS " + { table.query; table.body }
-        using_statement(sql)(_.execute())
+        execute_statement("CREATE VIEW " + table + " AS " + { table.query; table.body })
       }
     }
   }
@@ -438,7 +439,7 @@
   class Database private[SQLite](name: String, val connection: Connection) extends SQL.Database {
     override def toString: String = name
     override def is_server: Boolean = false
-    override def rebuild(): Unit = using_statement("VACUUM")(_.execute())
+    override def rebuild(): Unit = execute_statement("VACUUM")
 
     override def now(): Date = Date.now()