Sqlite: Activate extended error codes

It makes it easier to debug the error.

Change-Id: Id2591c6d8a546f2020ddb276d246706e0c60f052
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Marco Bubke
2021-01-12 16:28:28 +01:00
parent fd22787a69
commit a477118b22
2 changed files with 137 additions and 9 deletions

View File

@@ -101,13 +101,11 @@ void DatabaseBackend::open(Utils::SmallStringView databaseFilePath, OpenMode mod
{
checkCanOpenDatabase(databaseFilePath);
int resultCode = sqlite3_open_v2(databaseFilePath.data(),
&m_databaseHandle,
openMode(mode),
nullptr);
int resultCode = sqlite3_open_v2(databaseFilePath.data(), &m_databaseHandle, openMode(mode), nullptr);
checkDatabaseCouldBeOpened(resultCode);
sqlite3_extended_result_codes(m_databaseHandle, true);
resultCode = sqlite3_carray_init(m_databaseHandle, nullptr, nullptr);
checkCarrayCannotBeIntialized(resultCode);
@@ -390,9 +388,15 @@ void DatabaseBackend::walCheckpointFull()
switch (resultCode) {
case SQLITE_OK:
break;
case SQLITE_BUSY_RECOVERY:
case SQLITE_BUSY_SNAPSHOT:
case SQLITE_BUSY_TIMEOUT:
case SQLITE_BUSY:
throw DatabaseIsBusy("DatabaseBackend::walCheckpointFull: Operation could not concluded "
"because database is busy!");
case SQLITE_ERROR_MISSING_COLLSEQ:
case SQLITE_ERROR_RETRY:
case SQLITE_ERROR_SNAPSHOT:
case SQLITE_ERROR:
throwException("DatabaseBackend::walCheckpointFull: Error occurred!");
case SQLITE_MISUSE: