diff options
Diffstat (limited to 'common/queryrunner.cpp')
-rw-r--r-- | common/queryrunner.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/common/queryrunner.cpp b/common/queryrunner.cpp index 4422229..67e83ea 100644 --- a/common/queryrunner.cpp +++ b/common/queryrunner.cpp | |||
@@ -176,10 +176,7 @@ QueryWorker<DomainType>::~QueryWorker() | |||
176 | template <class DomainType> | 176 | template <class DomainType> |
177 | void QueryWorker<DomainType>::resultProviderCallback(const Sink::Query &query, Sink::ResultProviderInterface<typename DomainType::Ptr> &resultProvider, const ResultSet::Result &result) | 177 | void QueryWorker<DomainType>::resultProviderCallback(const Sink::Query &query, Sink::ResultProviderInterface<typename DomainType::Ptr> &resultProvider, const ResultSet::Result &result) |
178 | { | 178 | { |
179 | auto adaptor = mResourceContext.adaptorFactory<DomainType>().createAdaptor(result.buffer.entity()); | 179 | auto valueCopy = Sink::ApplicationDomain::ApplicationDomainType::getInMemoryRepresentation<DomainType>(result.entity, query.requestedProperties).template staticCast<DomainType>(); |
180 | Q_ASSERT(adaptor); | ||
181 | auto domainObject = DomainType{mResourceContext.instanceId(), result.uid, result.buffer.revision(), adaptor}; | ||
182 | auto valueCopy = Sink::ApplicationDomain::ApplicationDomainType::getInMemoryRepresentation<DomainType>(domainObject, query.requestedProperties).template staticCast<DomainType>(); | ||
183 | for (auto it = result.aggregateValues.constBegin(); it != result.aggregateValues.constEnd(); it++) { | 180 | for (auto it = result.aggregateValues.constBegin(); it != result.aggregateValues.constEnd(); it++) { |
184 | valueCopy->setProperty(it.key(), it.value()); | 181 | valueCopy->setProperty(it.key(), it.value()); |
185 | } | 182 | } |
@@ -208,12 +205,10 @@ QPair<qint64, qint64> QueryWorker<DomainType>::executeIncrementalQuery(const Sin | |||
208 | QTime time; | 205 | QTime time; |
209 | time.start(); | 206 | time.start(); |
210 | 207 | ||
211 | auto entityStore = EntityStore::Ptr::create(mResourceContext); | ||
212 | |||
213 | const qint64 baseRevision = resultProvider.revision() + 1; | 208 | const qint64 baseRevision = resultProvider.revision() + 1; |
214 | 209 | auto entityStore = EntityStore::Ptr::create(mResourceContext); | |
215 | auto preparedQuery = ApplicationDomain::TypeImplementation<DomainType>::prepareQuery(query, entityStore); | 210 | auto preparedQuery = DataStoreQuery{query, ApplicationDomain::getTypeName<DomainType>(), entityStore}; |
216 | auto resultSet = preparedQuery->update(baseRevision); | 211 | auto resultSet = preparedQuery.update(baseRevision); |
217 | SinkTrace() << "Filtered set retrieved. " << Log::TraceTime(time.elapsed()); | 212 | SinkTrace() << "Filtered set retrieved. " << Log::TraceTime(time.elapsed()); |
218 | auto replayedEntities = resultSet.replaySet(0, 0, [this, query, &resultProvider](const ResultSet::Result &result) { | 213 | auto replayedEntities = resultSet.replaySet(0, 0, [this, query, &resultProvider](const ResultSet::Result &result) { |
219 | resultProviderCallback(query, resultProvider, result); | 214 | resultProviderCallback(query, resultProvider, result); |
@@ -242,9 +237,8 @@ QPair<qint64, qint64> QueryWorker<DomainType>::executeInitialQuery( | |||
242 | } | 237 | } |
243 | 238 | ||
244 | auto entityStore = EntityStore::Ptr::create(mResourceContext); | 239 | auto entityStore = EntityStore::Ptr::create(mResourceContext); |
245 | 240 | auto preparedQuery = DataStoreQuery{query, ApplicationDomain::getTypeName<DomainType>(), entityStore}; | |
246 | auto preparedQuery = ApplicationDomain::TypeImplementation<DomainType>::prepareQuery(query, entityStore); | 241 | auto resultSet = preparedQuery.execute(); |
247 | auto resultSet = preparedQuery->execute(); | ||
248 | 242 | ||
249 | SinkTrace() << "Filtered set retrieved. " << Log::TraceTime(time.elapsed()); | 243 | SinkTrace() << "Filtered set retrieved. " << Log::TraceTime(time.elapsed()); |
250 | auto replayedEntities = resultSet.replaySet(offset, batchsize, [this, query, &resultProvider](const ResultSet::Result &result) { | 244 | auto replayedEntities = resultSet.replaySet(offset, batchsize, [this, query, &resultProvider](const ResultSet::Result &result) { |