Switch to generic hash algorithms for subfile incrementals.
[cumulus.git] / localdb.cc
index 7cabcb1..15b58e6 100644 (file)
@@ -70,7 +70,7 @@ void LocalDb::ReportError(int rc)
 }
 
 void LocalDb::Open(const char *path, const char *snapshot_name,
-                   const char *snapshot_scheme, double intent)
+                   const char *snapshot_scheme)
 {
     int rc;
 
@@ -115,13 +115,12 @@ void LocalDb::Open(const char *path, const char *snapshot_name,
 
     /* Insert this snapshot into the database, and determine the integer key
      * which will be used to identify it. */
-    stmt = Prepare("insert into snapshots(name, scheme, timestamp, intent) "
-                   "values (?, ?, julianday('now'), ?)");
+    stmt = Prepare("insert into snapshots(name, scheme, timestamp) "
+                   "values (?, ?, julianday('now'))");
     sqlite3_bind_text(stmt, 1, snapshot_name, strlen(snapshot_name),
                       SQLITE_TRANSIENT);
     sqlite3_bind_text(stmt, 2, snapshot_scheme, strlen(snapshot_scheme),
                       SQLITE_TRANSIENT);
-    sqlite3_bind_double(stmt, 3, intent);
 
     rc = sqlite3_step(stmt);
     if (rc != SQLITE_DONE) {
@@ -320,7 +319,7 @@ bool LocalDb::IsOldObject(const string &checksum, int64_t size, double *age,
     sqlite3_stmt *stmt;
     bool found = false;
 
-    stmt = Prepare("select segmentid, object, timestamp, expired "
+    stmt = Prepare("select segmentid, object, julianday(timestamp), expired "
                    "from block_index where checksum = ? and size = ?");
     sqlite3_bind_text(stmt, 1, checksum.c_str(), checksum.size(),
                       SQLITE_TRANSIENT);
@@ -453,7 +452,7 @@ void LocalDb::UseObject(const ObjectReference& ref)
     // size will have a reference size capped at just less than the full object
     // size (we can't tell if some bytes were referenced multiple times, and
     // thus we conservatively assume some bytes might still be unreferenced).
-    int64_t new_refs = old_size;
+    int64_t new_refs;
     if (ref.has_range()) {
         new_refs = ref.get_range_length();
     } else {
@@ -495,7 +494,8 @@ void LocalDb::SetSegmentMetadata(const std::string &segment,
 
     stmt = Prepare("update segments set path = ?, checksum = ?, "
                    "type = ?, data_size = ?, disk_size = ?, "
-                   "mtime = coalesce(mtime, julianday('now')) "
+                   "timestamp = coalesce(julianday(timestamp), "
+                   "                     julianday('now')) "
                    "where segmentid = ?");
     sqlite3_bind_text(stmt, 1, path.c_str(), path.size(),
                       SQLITE_TRANSIENT);