X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=localdb.cc;h=7d93bb174320270f53b60dc86295b7caddc9b603;hb=eff3483101b31fad71ed936509865395ecc6cc3a;hp=ecf83aa8c3876774e8a57bf0d3dd7183dc3df494;hpb=c10290a5e5b066bedfec4ae23a799e5d5a1ff009;p=cumulus.git diff --git a/localdb.cc b/localdb.cc index ecf83aa..7d93bb1 100644 --- a/localdb.cc +++ b/localdb.cc @@ -85,6 +85,9 @@ void LocalDb::Open(const char *path, const char *snapshot_name, sqlite3_extended_result_codes(db, 1); + if (snapshot_scheme == NULL) + snapshot_scheme = ""; + /* Insert this snapshot into the database, and determine the integer key * which will be used to identify it. */ sqlite3_stmt *stmt = Prepare("insert into " @@ -92,11 +95,8 @@ void LocalDb::Open(const char *path, const char *snapshot_name, "values (?, ?, julianday('now'), ?)"); sqlite3_bind_text(stmt, 1, snapshot_name, strlen(snapshot_name), SQLITE_TRANSIENT); - if (snapshot_scheme == NULL) - sqlite3_bind_null(stmt, 2); - else - sqlite3_bind_text(stmt, 2, snapshot_scheme, strlen(snapshot_scheme), - SQLITE_TRANSIENT); + sqlite3_bind_text(stmt, 2, snapshot_scheme, strlen(snapshot_scheme), + SQLITE_TRANSIENT); sqlite3_bind_double(stmt, 3, intent); rc = sqlite3_step(stmt); @@ -295,7 +295,7 @@ ObjectReference LocalDb::FindObject(const string &checksum, int64_t size) } else if (rc == SQLITE_ROW) { ref = ObjectReference(IdToSegment(sqlite3_column_int64(stmt, 0)), (const char *)sqlite3_column_text(stmt, 1)); - ref.set_range(0, size); + ref.set_range(0, size, true); } else { fprintf(stderr, "Could not execute SELECT statement!\n"); ReportError(rc); @@ -535,7 +535,7 @@ bool LocalDb::LoadChunkSignatures(ObjectReference ref, sqlite3_stmt *stmt; int found = false; - stmt = Prepare("select algorithm, signatures from subblock_signatures " + stmt = Prepare("select signatures, algorithm from subblock_signatures " "where blockid = (select blockid from block_index " " where segmentid = ? and object = ?)"); sqlite3_bind_int64(stmt, 1, SegmentToId(ref.get_segment()));