From 4926e7f613ea3e03a2865eec66c6a8c1ec0b6516 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sat, 28 Nov 2015 16:07:15 +0100 Subject: Cleanup --- common/queryrunner.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'common/queryrunner.cpp') diff --git a/common/queryrunner.cpp b/common/queryrunner.cpp index 4159112..3f62f6a 100644 --- a/common/queryrunner.cpp +++ b/common/queryrunner.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include "commands.h" #include "log.h" #include "storage.h" @@ -45,7 +46,7 @@ static inline ResultSet fullScan(const Akonadi2::Storage::Transaction &transacti qWarning() << "Error during query: " << error.message; }); - Trace() << "Full scan found " << keys.size() << " results"; + Trace() << "Full scan on " << bufferType << " found " << keys.size() << " results"; return ResultSet(keys); } @@ -96,6 +97,12 @@ QueryRunner::QueryRunner(const Akonadi2::Query &query, const Akonadi } } +template +QueryRunner::~QueryRunner() +{ + Trace() << "Stopped query"; +} + template typename Akonadi2::ResultEmitter::Ptr QueryRunner::emitter() { @@ -202,7 +209,6 @@ ResultSet QueryRunner::filterSet(const ResultSet &resultSet, const s readEntity(db, resultSetPtr->id(), [this, filter, callback, initialQuery](const Akonadi2::ApplicationDomain::ApplicationDomainType::Ptr &domainObject, Akonadi2::Operation operation) { //Always remove removals, they probably don't match due to non-available properties if (filter(domainObject) || operation == Akonadi2::Operation_Removal) { - Trace() << "entity is not filtered" << initialQuery; if (initialQuery) { //We're not interested in removals during the initial query if (operation != Akonadi2::Operation_Removal) { @@ -262,16 +268,24 @@ qint64 QueryRunner::load(const Akonadi2::Query &query, const std::fu template qint64 QueryRunner::executeIncrementalQuery(const Akonadi2::Query &query, Akonadi2::ResultProviderInterface &resultProvider) { + QTime time; + time.start(); + const qint64 baseRevision = resultProvider.revision() + 1; Trace() << "Running incremental query " << baseRevision; - return load(query, [&](Akonadi2::Storage::Transaction &transaction, QSet &remainingFilters) -> ResultSet { + auto revision = load(query, [&](Akonadi2::Storage::Transaction &transaction, QSet &remainingFilters) -> ResultSet { return loadIncrementalResultSet(baseRevision, query, transaction, remainingFilters); }, resultProvider, false); + Trace() << "Incremental query took: " << time.elapsed() << " ms"; + return revision; } template qint64 QueryRunner::executeInitialQuery(const Akonadi2::Query &query, const typename DomainType::Ptr &parent, Akonadi2::ResultProviderInterface &resultProvider) { + QTime time; + time.start(); + auto modifiedQuery = query; if (!query.parentProperty.isEmpty()) { if (parent) { @@ -282,9 +296,11 @@ qint64 QueryRunner::executeInitialQuery(const Akonadi2::Query &query modifiedQuery.propertyFilter.insert(query.parentProperty, QVariant()); } } - return load(modifiedQuery, [&](Akonadi2::Storage::Transaction &transaction, QSet &remainingFilters) -> ResultSet { + auto revision = load(modifiedQuery, [&](Akonadi2::Storage::Transaction &transaction, QSet &remainingFilters) -> ResultSet { return loadInitialResultSet(modifiedQuery, transaction, remainingFilters); }, resultProvider, true); + Trace() << "Initial query took: " << time.elapsed() << " ms"; + return revision; } template class QueryRunner; -- cgit v1.2.3