summaryrefslogtreecommitdiffstats
path: root/common/queryrunner.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-12-22 10:42:37 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-12-22 10:42:37 +0100
commit31dbc0cba9e5acfaeca41679873b17e11ceab811 (patch)
treeceabdf4f92666d92c72e9382c8c0c80bed23b837 /common/queryrunner.cpp
parente5125013a2661b30f21323f1a3f925103e8d589f (diff)
downloadsink-31dbc0cba9e5acfaeca41679873b17e11ceab811.tar.gz
sink-31dbc0cba9e5acfaeca41679873b17e11ceab811.zip
Only load the properties we need.
...and adjust the test accordingly with what we expect.
Diffstat (limited to 'common/queryrunner.cpp')
-rw-r--r--common/queryrunner.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/common/queryrunner.cpp b/common/queryrunner.cpp
index 2de3c10..d3f5254 100644
--- a/common/queryrunner.cpp
+++ b/common/queryrunner.cpp
@@ -103,23 +103,23 @@ typename Akonadi2::ResultEmitter<typename DomainType::Ptr>::Ptr QueryRunner<Doma
103} 103}
104 104
105template<class DomainType> 105template<class DomainType>
106void QueryRunner<DomainType>::replaySet(ResultSet &resultSet, Akonadi2::ResultProviderInterface<typename DomainType::Ptr> &resultProvider) 106void QueryRunner<DomainType>::replaySet(ResultSet &resultSet, Akonadi2::ResultProviderInterface<typename DomainType::Ptr> &resultProvider, const QList<QByteArray> &properties)
107{ 107{
108 int counter = 0; 108 int counter = 0;
109 while (resultSet.next([&resultProvider, &counter](const Akonadi2::ApplicationDomain::ApplicationDomainType::Ptr &value, Akonadi2::Operation operation) -> bool { 109 while (resultSet.next([&resultProvider, &counter, &properties](const Akonadi2::ApplicationDomain::ApplicationDomainType::Ptr &value, Akonadi2::Operation operation) -> bool {
110 counter++; 110 counter++;
111 switch (operation) { 111 switch (operation) {
112 case Akonadi2::Operation_Creation: 112 case Akonadi2::Operation_Creation:
113 // Trace() << "Got creation"; 113 // Trace() << "Got creation";
114 resultProvider.add(Akonadi2::ApplicationDomain::ApplicationDomainType::getInMemoryRepresentation<DomainType>(*value).template staticCast<DomainType>()); 114 resultProvider.add(Akonadi2::ApplicationDomain::ApplicationDomainType::getInMemoryRepresentation<DomainType>(*value, properties).template staticCast<DomainType>());
115 break; 115 break;
116 case Akonadi2::Operation_Modification: 116 case Akonadi2::Operation_Modification:
117 // Trace() << "Got modification"; 117 // Trace() << "Got modification";
118 resultProvider.modify(Akonadi2::ApplicationDomain::ApplicationDomainType::getInMemoryRepresentation<DomainType>(*value).template staticCast<DomainType>()); 118 resultProvider.modify(Akonadi2::ApplicationDomain::ApplicationDomainType::getInMemoryRepresentation<DomainType>(*value, properties).template staticCast<DomainType>());
119 break; 119 break;
120 case Akonadi2::Operation_Removal: 120 case Akonadi2::Operation_Removal:
121 // Trace() << "Got removal"; 121 // Trace() << "Got removal";
122 resultProvider.remove(Akonadi2::ApplicationDomain::ApplicationDomainType::getInMemoryRepresentation<DomainType>(*value).template staticCast<DomainType>()); 122 resultProvider.remove(Akonadi2::ApplicationDomain::ApplicationDomainType::getInMemoryRepresentation<DomainType>(*value, properties).template staticCast<DomainType>());
123 break; 123 break;
124 } 124 }
125 return true; 125 return true;
@@ -263,7 +263,7 @@ qint64 QueryRunner<DomainType>::load(const Akonadi2::Query &query, const std::fu
263 QSet<QByteArray> remainingFilters; 263 QSet<QByteArray> remainingFilters;
264 auto resultSet = baseSetRetriever(transaction, remainingFilters); 264 auto resultSet = baseSetRetriever(transaction, remainingFilters);
265 auto filteredSet = filterSet(resultSet, getFilter(remainingFilters, query), db, initialQuery); 265 auto filteredSet = filterSet(resultSet, getFilter(remainingFilters, query), db, initialQuery);
266 replaySet(filteredSet, resultProvider); 266 replaySet(filteredSet, resultProvider, query.requestedProperties);
267 resultProvider.setRevision(Akonadi2::Storage::maxRevision(transaction)); 267 resultProvider.setRevision(Akonadi2::Storage::maxRevision(transaction));
268 return Akonadi2::Storage::maxRevision(transaction); 268 return Akonadi2::Storage::maxRevision(transaction);
269} 269}