From 55e62ee0916b2f24a87004d472fc112a02015250 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Fri, 1 Dec 2017 13:56:52 +0100 Subject: [PATCH] fix(MainDb): use chat room id in get unread chat messages function --- src/db/main-db.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/db/main-db.cpp b/src/db/main-db.cpp index f0b17331f..bb3b87b07 100644 --- a/src/db/main-db.cpp +++ b/src/db/main-db.cpp @@ -1565,14 +1565,16 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), return chatMessages; } - string query = "SELECT event_id, creation_time FROM conference_chat_message_event WHERE"; + string query = "SELECT id, creation_time FROM event WHERE" + " id IN (" + " SELECT conference_event.event_id FROM conference_event, conference_chat_message_event" + + " WHERE"; if (chatRoomId.isValid()) - query += " event_id IN (" - " SELECT event_id FROM conference_event WHERE chat_room_id = :chatRoomId" - ") AND"; - - query += " direction = " + Utils::toString(static_cast(ChatMessage::Direction::Incoming)) + - + " AND state <> " + Utils::toString(static_cast(ChatMessage::State::Displayed)); + query += " chat_room_id = :chatRoomId AND "; + " conference_event.event_id = conference_chat_message_event.event_id" + " AND direction = " + Utils::toString(static_cast(ChatMessage::Direction::Incoming)) + + " AND state <> " + Utils::toString(static_cast(ChatMessage::State::Displayed)); + ")"; DurationLogger durationLogger( "Get unread chat messages: (peer=" + chatRoomId.getPeerAddress().asString() +