+
+ /* Summarize the snapshot_refs table into segments_used. */
+ sqlite3_stmt *stmt = Prepare("insert into segments_used "
+ "select ? as snapshotid, segmentid, "
+ "cast(used as real) / size as utilization "
+ "from "
+ "(select segmentid, sum(size) as used "
+ "from snapshot_refs group by segmentid) "
+ "join segments using (segmentid)");
+ sqlite3_bind_int64(stmt, 1, snapshotid);
+ rc = sqlite3_step(stmt);
+ if (rc != SQLITE_OK && rc != SQLITE_DONE) {
+ ReportError(rc);
+ sqlite3_close(db);
+ fprintf(stderr, "DATABASE ERROR: Unable to create segment summary!\n");
+ }
+ sqlite3_finalize(stmt);
+
+ /* Commit changes to the database and close. */