summaryrefslogtreecommitdiffstats
path: root/common/entitystorage.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2015-10-11 17:32:30 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2015-10-11 17:32:30 +0200
commitc3a20160d4ff52c8ec288f6a42f7e136064fb493 (patch)
tree866ff1850a7c160ed39494a989f18aef182d2d2f /common/entitystorage.cpp
parentd6e6cab8b284167a9c8fd30ae669354d8315b3aa (diff)
downloadsink-c3a20160d4ff52c8ec288f6a42f7e136064fb493.tar.gz
sink-c3a20160d4ff52c8ec288f6a42f7e136064fb493.zip
Replay removals.
Now we just have to avoid removing the revision too early from the resource.
Diffstat (limited to 'common/entitystorage.cpp')
-rw-r--r--common/entitystorage.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/common/entitystorage.cpp b/common/entitystorage.cpp
index b77b481..b19fe0a 100644
--- a/common/entitystorage.cpp
+++ b/common/entitystorage.cpp
@@ -58,7 +58,11 @@ void EntityStorageBase::readEntity(const Akonadi2::Storage::Transaction &transac
58 auto operation = metadataBuffer->operation(); 58 auto operation = metadataBuffer->operation();
59 59
60 auto domainObject = create(key, revision, mDomainTypeAdaptorFactory->createAdaptor(entity)); 60 auto domainObject = create(key, revision, mDomainTypeAdaptorFactory->createAdaptor(entity));
61 resultCallback(domainObject, operation); 61 if (operation == Akonadi2::Operation_Removal) {
62 resultCallback(create(key, revision, mDomainTypeAdaptorFactory->createAdaptor(entity)), operation);
63 } else {
64 resultCallback(create(key, revision, mDomainTypeAdaptorFactory->createAdaptor(entity)), operation);
65 }
62 return false; 66 return false;
63 }, mBufferType); 67 }, mBufferType);
64} 68}
@@ -124,7 +128,7 @@ ResultSet EntityStorageBase::getResultSet(const Akonadi2::Query &query, Akonadi2
124 const qint64 topRevision = Akonadi2::Storage::maxRevision(transaction); 128 const qint64 topRevision = Akonadi2::Storage::maxRevision(transaction);
125 QSet<QByteArray> remainingFilters = query.propertyFilter.keys().toSet(); 129 QSet<QByteArray> remainingFilters = query.propertyFilter.keys().toSet();
126 ResultSet resultSet; 130 ResultSet resultSet;
127 const bool initialQuery = (baseRevision == 0); 131 const bool initialQuery = (baseRevision == 1);
128 if (initialQuery) { 132 if (initialQuery) {
129 Trace() << "Initial result set update"; 133 Trace() << "Initial result set update";
130 resultSet = loadInitialResultSet(query, transaction, remainingFilters); 134 resultSet = loadInitialResultSet(query, transaction, remainingFilters);