Properly force checkpoint at end of conversion

// FREEBIE
pull/1/head
Michael Kirk 7 years ago committed by Matthew Chen
parent 468dedf581
commit acc97b197b

@ -206,6 +206,8 @@ NS_ASSUME_NONNULL_BEGIN
return databaseFilePath; return databaseFilePath;
} }
#pragma mark - Tests
- (void)testDoesDatabaseNeedToBeConverted_Unconverted - (void)testDoesDatabaseNeedToBeConverted_Unconverted
{ {
NSData *databasePassword = [self randomDatabasePassword]; NSData *databasePassword = [self randomDatabasePassword];

@ -302,8 +302,13 @@ const NSUInteger kSQLCipherSaltLength = 16;
} }
// Force a checkpoint so that the plaintext is written to the actual DB file, not just living in the WAL. // Force a checkpoint so that the plaintext is written to the actual DB file, not just living in the WAL.
// TODO do we need/want the earlier checkpoint if we're checkpointing here? int log, ckpt;
sqlite3_wal_autocheckpoint(db, 0); status = sqlite3_wal_checkpoint_v2(db, NULL, SQLITE_CHECKPOINT_FULL, &log, &ckpt);
if (status != SQLITE_OK) {
DDLogError(@"%@ Error forcing checkpoint. status: %d, log: %d, ckpt: %d, error: %s", self.logTag, status, log, ckpt, sqlite3_errmsg(db));
return OWSErrorWithCodeDescription(
OWSErrorCodeDatabaseConversionFatalError, @"Error forcing checkpoint.");
}
sqlite3_close(db); sqlite3_close(db);
} }

Loading…
Cancel
Save