From c6af4d6ed59235d8fec52aeddfcd9a65607139ff Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 22 Nov 2016 10:26:30 +0100 Subject: Avoid unnecessary transactions. --- common/storage/entitystore.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'common/storage') diff --git a/common/storage/entitystore.cpp b/common/storage/entitystore.cpp index 3512e34..79314ad 100644 --- a/common/storage/entitystore.cpp +++ b/common/storage/entitystore.cpp @@ -309,11 +309,19 @@ void EntityStore::cleanupRevision(qint64 revision) void EntityStore::cleanupRevisions(qint64 revision) { + bool implicitTransaction = false; + if (!d->transaction) { + startTransaction(Sink::Storage::DataStore::ReadWrite); + implicitTransaction = true; + } const auto lastCleanRevision = DataStore::cleanedUpRevision(d->transaction); SinkTrace() << "Cleaning up from " << lastCleanRevision + 1 << " to " << revision; for (qint64 rev = lastCleanRevision + 1; rev <= revision; rev++) { cleanupRevision(revision); } + if (implicitTransaction) { + commitTransaction(); + } } QVector EntityStore::fullScan(const QByteArray &type) -- cgit v1.2.3