From ae412b628be9461c5f959272758352580e57f024 Mon Sep 17 00:00:00 2001 From: Simon Laux Date: Sat, 7 Jan 2023 02:24:09 +0100 Subject: [PATCH] simplify the sql query --- src/chatlist.rs | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/src/chatlist.rs b/src/chatlist.rs index 452b5dc39..08136d74e 100644 --- a/src/chatlist.rs +++ b/src/chatlist.rs @@ -369,29 +369,22 @@ pub async fn get_chatlistitem_for_chat( ) -> Result<(ChatId, Option)> { // Similar result as normal chatlist, only one item though and: // archived and blocked chats are included - context + let msg_id = context .sql .query_row( - "SELECT c.id, m.id - FROM chats c - LEFT JOIN msgs m - ON c.id=m.chat_id - AND m.id=( - SELECT id - FROM msgs - WHERE chat_id=c.id - AND (hidden=0 OR state=?1) - ORDER BY timestamp DESC, id DESC LIMIT 1) - WHERE c.id=?2 - GROUP BY c.id", + "SELECT id + FROM msgs + WHERE chat_id=?2 + AND (hidden=0 OR state=?1) + ORDER BY timestamp DESC, id DESC LIMIT 1", paramsv![MessageState::OutDraft, chat_id], |row: &rusqlite::Row| { - let chat_id: ChatId = row.get(0)?; - let msg_id: Option = row.get(1)?; - Ok((chat_id, msg_id)) + let msg_id: Option = row.get(0)?; + Ok(msg_id) }, ) - .await + .await?; + Ok((chat_id, msg_id)) } #[cfg(test)]