ClangRefactoring: Ensure that database is written to log after indexing

Change-Id: Ic2473d9fe8dc9b41a7da728c9e1b5202524c1a79
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Marco Bubke
2019-05-20 16:46:22 +02:00
parent 60ea77f3eb
commit 912cb9278f
10 changed files with 132 additions and 24 deletions

View File

@@ -406,6 +406,27 @@ void DatabaseBackend::setBusyTimeout(std::chrono::milliseconds timeout)
sqlite3_busy_timeout(m_databaseHandle, int(timeout.count()));
}
void DatabaseBackend::walCheckpointFull()
{
int resultCode = sqlite3_wal_checkpoint_v2(m_databaseHandle,
nullptr,
SQLITE_CHECKPOINT_TRUNCATE,
nullptr,
nullptr);
switch (resultCode) {
case SQLITE_OK:
break;
case SQLITE_BUSY:
throw DatabaseIsBusy("DatabaseBackend::walCheckpointFull: Operation could not concluded "
"because database is busy!");
case SQLITE_ERROR:
throwException("DatabaseBackend::walCheckpointFull: Error occurred!");
case SQLITE_MISUSE:
throwExceptionStatic("DatabaseBackend::walCheckpointFull: Misuse of database!");
}
}
void DatabaseBackend::throwExceptionStatic(const char *whatHasHappens)
{
throw Exception(whatHasHappens);