From 39a20d8ce774f94f22009d4e571bfa39ba087f3b Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 24 May 2016 23:58:12 +0200 Subject: It's an error if we tried to read the latest value but didn't find any. --- common/storage_lmdb.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'common') diff --git a/common/storage_lmdb.cpp b/common/storage_lmdb.cpp index 878a5d9..6a84c72 100644 --- a/common/storage_lmdb.cpp +++ b/common/storage_lmdb.cpp @@ -275,6 +275,7 @@ void Storage::NamedDatabase::findLatest(const QByteArray &k, const std::function return; } + bool foundValue = false; MDB_cursor_op op = MDB_SET_RANGE; if ((rc = mdb_cursor_get(cursor, &key, &data, op)) == 0) { // The first lookup will find a key that is equal or greather than our key @@ -295,6 +296,7 @@ void Storage::NamedDatabase::findLatest(const QByteArray &k, const std::function prefOp = MDB_LAST; } rc = mdb_cursor_get(cursor, &key, &data, prefOp); + foundValue = true; resultHandler(QByteArray::fromRawData((char *)key.mv_data, key.mv_size), QByteArray::fromRawData((char *)data.mv_data, data.mv_size)); } } @@ -310,6 +312,9 @@ void Storage::NamedDatabase::findLatest(const QByteArray &k, const std::function if (rc) { Error error(d->name.toLatin1(), getErrorCode(rc), QByteArray("Key: ") + k + " : " + QByteArray(mdb_strerror(rc))); errorHandler ? errorHandler(error) : d->defaultErrorHandler(error); + } else if (!foundValue) { + Error error(d->name.toLatin1(), 1, QByteArray("Key: ") + k + " : No value found"); + errorHandler ? errorHandler(error) : d->defaultErrorHandler(error); } return; -- cgit v1.2.3