Clang: Add busy timeout handler to database

You use now a busy timeout of one second. This is preventing the throwing
of a exception for a busy time under one second.

Change-Id: Iae800a525ad009b594c29883ffb243c1be8b3874
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
Marco Bubke
2018-03-28 17:55:14 +02:00
parent 5870905db6
commit 68c1140d27
8 changed files with 59 additions and 10 deletions

View File

@@ -28,6 +28,10 @@
#include "sqlitetable.h"
#include "sqlitetransaction.h"
#include <chrono>
using namespace std::chrono_literals;
namespace Sqlite {
Database::Database()
@@ -36,7 +40,15 @@ Database::Database()
}
Database::Database(Utils::PathString &&databaseFilePath, JournalMode journalMode)
: m_databaseBackend(*this)
: Database(std::move(databaseFilePath), 0ms, journalMode)
{
}
Database::Database(Utils::PathString &&databaseFilePath,
std::chrono::milliseconds busyTimeout,
JournalMode journalMode)
: m_databaseBackend(*this),
m_busyTimeout(busyTimeout)
{
setJournalMode(journalMode);
open(std::move(databaseFilePath));
@@ -46,6 +58,7 @@ void Database::open()
{
m_databaseBackend.open(m_databaseFilePath, m_openMode);
m_databaseBackend.setJournalMode(m_journalMode);
m_databaseBackend.setBusyTimeout(m_busyTimeout);
initializeTables();
m_isOpen = true;
}
@@ -129,6 +142,4 @@ DatabaseBackend &Database::backend()
return m_databaseBackend;
}
} // namespace Sqlite