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