From 0979362eab2ef35dc4d003f234bb4d544910f80e Mon Sep 17 00:00:00 2001 From: Mohamad Jaara Date: Mon, 17 Jul 2023 15:56:06 +0000 Subject: [PATCH] fix: get conversation members is causing a full table scan (#1891) --- .../commonMain/db_user/com/wire/kalium/persistence/Members.sq | 3 +-- .../kotlin/com/wire/kalium/persistence/dao/member/MemberDAO.kt | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/persistence/src/commonMain/db_user/com/wire/kalium/persistence/Members.sq b/persistence/src/commonMain/db_user/com/wire/kalium/persistence/Members.sq index c6d7d9bd93c..36e878bd8ff 100644 --- a/persistence/src/commonMain/db_user/com/wire/kalium/persistence/Members.sq +++ b/persistence/src/commonMain/db_user/com/wire/kalium/persistence/Members.sq @@ -22,9 +22,8 @@ DELETE FROM Member WHERE conversation = ? AND user = ?; deleteMembersFromConversation: DELETE FROM Member WHERE conversation = ?; --- TODO: replace LIKE with absolute value selectAllMembersByConversation: -SELECT * FROM Member WHERE conversation LIKE ('%' || :searchQuery || '%'); +SELECT * FROM Member WHERE conversation = :conversation; selectConversationByMember: SELECT * FROM Member diff --git a/persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/member/MemberDAO.kt b/persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/member/MemberDAO.kt index e4decca259e..c6839a9a7ac 100644 --- a/persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/member/MemberDAO.kt +++ b/persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/member/MemberDAO.kt @@ -122,7 +122,7 @@ internal class MemberDAOImpl internal constructor( } override suspend fun observeConversationMembers(qualifiedID: QualifiedIDEntity): Flow> { - return memberQueries.selectAllMembersByConversation(qualifiedID.value) + return memberQueries.selectAllMembersByConversation(qualifiedID) .asFlow() .flowOn(coroutineContext) .mapToList()