summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2016-02-12 11:45:24 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2016-02-12 11:45:24 +0100
commit63b056d69f3063a8a564b38c1890ae65afaddc2c (patch)
tree742570fc2b7bcbde8c0c301c881bd97f260d9520
parent466c60dcef3b593f04e51bae843366fbf6ce697b (diff)
downloadsink-63b056d69f3063a8a564b38c1890ae65afaddc2c.tar.gz
sink-63b056d69f3063a8a564b38c1890ae65afaddc2c.zip
Sequential keys go badly with findLatest
-rw-r--r--common/storage.h6
-rw-r--r--tests/databasepopulationandfacadequerybenchmark.cpp2
2 files changed, 7 insertions, 1 deletions
diff --git a/common/storage.h b/common/storage.h
index ac03947..663d192 100644
--- a/common/storage.h
+++ b/common/storage.h
@@ -86,6 +86,12 @@ public:
86 const std::function<bool(const QByteArray &key, const QByteArray &value)> &resultHandler, 86 const std::function<bool(const QByteArray &key, const QByteArray &value)> &resultHandler,
87 const std::function<void(const Storage::Error &error)> &errorHandler = std::function<void(const Storage::Error &error)>(), bool findSubstringKeys = false) const; 87 const std::function<void(const Storage::Error &error)> &errorHandler = std::function<void(const Storage::Error &error)>(), bool findSubstringKeys = false) const;
88 88
89 /**
90 * Finds the last value in a series matched by prefix.
91 *
92 * This is used to match by uid prefix and find the highest revision.
93 * Note that this relies on a key scheme like $uid$revision.
94 */
89 void findLatest(const QByteArray &uid, 95 void findLatest(const QByteArray &uid,
90 const std::function<void(const QByteArray &key, const QByteArray &value)> &resultHandler, 96 const std::function<void(const QByteArray &key, const QByteArray &value)> &resultHandler,
91 const std::function<void(const Storage::Error &error)> &errorHandler = std::function<void(const Storage::Error &error)>()) const; 97 const std::function<void(const Storage::Error &error)> &errorHandler = std::function<void(const Storage::Error &error)>()) const;
diff --git a/tests/databasepopulationandfacadequerybenchmark.cpp b/tests/databasepopulationandfacadequerybenchmark.cpp
index 63daebc..7df38ba 100644
--- a/tests/databasepopulationandfacadequerybenchmark.cpp
+++ b/tests/databasepopulationandfacadequerybenchmark.cpp
@@ -58,7 +58,7 @@ class DatabasePopulationAndFacadeQueryBenchmark : public QObject
58 flatbuffers::FlatBufferBuilder fbb; 58 flatbuffers::FlatBufferBuilder fbb;
59 domainTypeAdaptorFactory->createBuffer(*domainObject, fbb); 59 domainTypeAdaptorFactory->createBuffer(*domainObject, fbb);
60 const auto buffer = QByteArray::fromRawData(reinterpret_cast<const char*>(fbb.GetBufferPointer()), fbb.GetSize()); 60 const auto buffer = QByteArray::fromRawData(reinterpret_cast<const char*>(fbb.GetBufferPointer()), fbb.GetSize());
61 const auto key = QString::number(i).toLatin1(); 61 const auto key = QUuid::createUuid().toString().toLatin1();
62 db.write(key, buffer); 62 db.write(key, buffer);
63 bufferSizeTotal += buffer.size(); 63 bufferSizeTotal += buffer.size();
64 keysSizeTotal += key.size(); 64 keysSizeTotal += key.size();