// Delete any existing instances with this filename.
sqlite3_stmt *stmt;
- ret = sqlite3_prepare_v2(db, "DELETE FROM filev2 WHERE filename=?", -1, &stmt, 0);
- if (ret != SQLITE_OK) {
- fprintf(stderr, "DELETE prepare: %s\n", sqlite3_errmsg(db));
- exit(1);
- }
-
- sqlite3_bind_text(stmt, 1, filename.data(), filename.size(), SQLITE_STATIC);
-
- ret = sqlite3_step(stmt);
- if (ret == SQLITE_ROW) {
- fprintf(stderr, "DELETE step: %s\n", sqlite3_errmsg(db));
- exit(1);
- }
-
- ret = sqlite3_finalize(stmt);
- if (ret != SQLITE_OK) {
- fprintf(stderr, "DELETE finalize: %s\n", sqlite3_errmsg(db));
- exit(1);
- }
-
// Create the protobuf blob for the new row.
FileContentsProto file_contents;
unordered_set<unsigned> seen_stream_idx; // Usually only one.
file_contents.SerializeToString(&serialized);
// Insert the new row.
- ret = sqlite3_prepare_v2(db, "INSERT INTO filev2 (filename, size, frames) VALUES (?, ?, ?)", -1, &stmt, 0);
+ ret = sqlite3_prepare_v2(db, "REPLACE INTO filev2 (filename, size, frames) VALUES (?, ?, ?)", -1, &stmt, 0);
if (ret != SQLITE_OK) {
fprintf(stderr, "INSERT prepare: %s\n", sqlite3_errmsg(db));
exit(1);