src/Pure/Tools/build_process.scala
changeset 77539 2b996a0df1ce
parent 77538 fcda9a009213
child 77540 c537905c2125
equal deleted inserted replaced
77538:fcda9a009213 77539:2b996a0df1ce
   125         Some(db)
   125         Some(db)
   126       }
   126       }
   127 
   127 
   128     def prepare_database(): Unit = {
   128     def prepare_database(): Unit = {
   129       using_option(open_database()) { db =>
   129       using_option(open_database()) { db =>
   130         db.transaction { for (table <- Data.all_tables) db.create_table(table) }
   130         db.transaction {
       
   131           for (table <- Data.all_tables) db.create_table(table)
       
   132           Data.clean_build(db)
       
   133         }
   131         db.rebuild()
   134         db.rebuild()
   132       }
   135       }
   133     }
   136     }
   134 
   137 
   135     def store_heap(name: String): Boolean =
   138     def store_heap(name: String): Boolean =
   299         Base.table.update(List(Base.end), sql = SQL.where(Generic.sql(build_uuid = build_uuid)))
   302         Base.table.update(List(Base.end), sql = SQL.where(Generic.sql(build_uuid = build_uuid)))
   300       ) { stmt =>
   303       ) { stmt =>
   301           stmt.date(1) = db.now()
   304           stmt.date(1) = db.now()
   302           stmt.execute()
   305           stmt.execute()
   303         }
   306         }
       
   307 
       
   308     def clean_build(db: SQL.Database): Unit = {
       
   309       val old =
       
   310         db.using_statement(
       
   311           Base.table.select(List(Base.build_uuid), sql = SQL.where(Base.end.defined))
       
   312         )(stmt => stmt.execute_query().iterator(_.string(Base.build_uuid)).toList)
       
   313 
       
   314       if (old.nonEmpty) {
       
   315         for (table <- List(Base.table, Sessions.table, Progress.table, Workers.table)) {
       
   316           db.using_statement(table.delete(sql = Generic.build_uuid.where_member(old)))(_.execute())
       
   317         }
       
   318       }
       
   319     }
   304 
   320 
   305 
   321 
   306     /* sessions */
   322     /* sessions */
   307 
   323 
   308     object Sessions {
   324     object Sessions {