src/Pure/ML/ml_heap.scala
changeset 79686 d2cb610c4229
parent 79685 45af93b0370a
child 79687 48628d2e30ef
equal deleted inserted replaced
79685:45af93b0370a 79686:d2cb610c4229
    58       val digest = SQL.Column.string("digest")
    58       val digest = SQL.Column.string("digest")
    59       val uuid = SQL.Column.string("uuid")
    59       val uuid = SQL.Column.string("uuid")
    60       val log_db = SQL.Column.bytes("log_db")
    60       val log_db = SQL.Column.bytes("log_db")
    61 
    61 
    62       val table = make_table(List(name, size, digest, uuid, log_db))
    62       val table = make_table(List(name, size, digest, uuid, log_db))
       
    63     }
       
    64 
       
    65     object Base_Size {
       
    66       val name = Generic.name
       
    67       val heap_size = SQL.Column.string("heap_size")
       
    68       val log_db_size = SQL.Column.string("log_db_size")
       
    69 
       
    70       val table = make_table(List(name, heap_size, log_db_size),
       
    71         body =
       
    72           "SELECT name, pg_size_pretty(size::bigint) as heap_size, " +
       
    73           "  pg_size_pretty(length(log_db)::bigint) as log_db_size FROM " + Base.table.ident,
       
    74         name = "size")
    63     }
    75     }
    64 
    76 
    65     object Slices {
    77     object Slices {
    66       val name = Generic.name
    78       val name = Generic.name
    67       val slice = SQL.Column.int("slice").make_primary_key
    79       val slice = SQL.Column.int("slice").make_primary_key
   125 
   137 
   126     def clean_entry(db: SQL.Database, name: String): Unit = {
   138     def clean_entry(db: SQL.Database, name: String): Unit = {
   127       for (table <- List(Base.table, Slices.table)) {
   139       for (table <- List(Base.table, Slices.table)) {
   128         db.execute_statement(table.delete(sql = Base.name.where_equal(name)))
   140         db.execute_statement(table.delete(sql = Base.name.where_equal(name)))
   129       }
   141       }
   130       db.create_view(Slices_Size.table)
   142       for (table <- List(Base_Size.table, Slices_Size.table)) {
       
   143         db.create_view(table)
       
   144       }
   131     }
   145     }
   132 
   146 
   133     def init_entry(db: SQL.Database, name: String): Unit =
   147     def init_entry(db: SQL.Database, name: String): Unit =
   134       db.execute_statement(Base.table.insert(), body =
   148       db.execute_statement(Base.table.insert(), body =
   135         { stmt =>
   149         { stmt =>