From 2e2c39b7bc7d276f6ce0967135fa41ee33d71c6e Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Wed, 8 Nov 2017 17:14:23 +0100 Subject: [PATCH] feat(MainDb): getHistoryRange supports events cache --- src/db/main-db.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/db/main-db.cpp b/src/db/main-db.cpp index b146db248..79a6a211d 100644 --- a/src/db/main-db.cpp +++ b/src/db/main-db.cpp @@ -1125,12 +1125,16 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), // See: http://soci.sourceforge.net/doc/master/backends/ // `row id` is not supported by soci on Sqlite3. It's necessary to cast id to int... long long eventId = getBackend() == Sqlite3 ? static_cast(row.get(0)) : row.get(0); - shared_ptr event = d->selectGenericConferenceEvent( - eventId, - static_cast(row.get(1)), - Utils::getTmAsTimeT(row.get(2)), - peerAddress - ); + shared_ptr event = d->getEventFromCache(eventId); + + if (!event) + event = d->selectGenericConferenceEvent( + eventId, + static_cast(row.get(1)), + Utils::getTmAsTimeT(row.get(2)), + peerAddress + ); + if (event) events.push_back(event); else