From f9441f5687f8a968dca3ec831b0c811e2aabaa86 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 19 Dec 2023 17:29:12 +0100 Subject: [PATCH] Fixed performance issue --- app/src/main/java/eu/faircode/email/DaoMessage.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index 4b9f5a3661..df1a7004e3 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -51,8 +51,8 @@ public interface DaoMessage { ", account.notify AS accountNotify, account.summary AS accountSummary, account.leave_deleted AS accountLeaveDeleted, account.auto_seen AS accountAutoSeen" + ", folder.name AS folderName, folder.color AS folderColor, folder.display AS folderDisplay, folder.type AS folderType, NULL AS folderInheritedType, folder.unified AS folderUnified, folder.read_only AS folderReadOnly" + ", IFNULL(identity.display, identity.name) AS identityName, identity.email AS identityEmail, identity.color AS identityColor, identity.synchronize AS identitySynchronize" + - ", '[' || (SELECT group_concat(`from`, ',') FROM (SELECT DISTINCT `from` FROM message m0 WHERE m0.account = message.account AND m0.thread = message.thread ORDER BY m0.received DESC LIMIT 3)) || ']' AS senders" + - ", '[' || (SELECT group_concat(`to`, ',') FROM (SELECT DISTINCT `to` FROM message m0 WHERE m0.account = message.account AND m0.thread = message.thread ORDER BY m0.received DESC LIMIT 3)) || ']' AS recipients" + + ", '[' || (SELECT group_concat(`from`, ',') FROM (SELECT DISTINCT `from` FROM message m0 WHERE m0.thread = message.thread ORDER BY m0.received DESC LIMIT 3)) || ']' AS senders" + + ", '[' || (SELECT group_concat(`to`, ',') FROM (SELECT DISTINCT `to` FROM message m0 WHERE m0.thread = message.thread ORDER BY m0.received DESC LIMIT 3)) || ']' AS recipients" + ", COUNT(message.id) AS count" + ", SUM(1 - message.ui_seen) AS unseen" + ", SUM(1 - message.ui_flagged) AS unflagged" + @@ -77,7 +77,7 @@ public interface DaoMessage { " THEN message.received ELSE 0 END) AS dummy" + " FROM message" + - " JOIN message AS mm ON mm.account = message.account AND mm.thread = message.thread" + + " JOIN message AS mm ON mm.thread = message.thread" + " AND (NOT :found OR mm.ui_found) AND (NOT mm.ui_hide OR :debug)" + " JOIN folder AS ff ON ff.id = mm.folder" + " AND (:found OR (:type IS NULL AND ff.unified) OR (:type IS NOT NULL AND ff.type = :type))" + @@ -129,8 +129,8 @@ public interface DaoMessage { ", account.notify AS accountNotify, account.summary AS accountSummary, account.leave_deleted AS accountLeaveDeleted, account.auto_seen AS accountAutoSeen" + ", folder.name AS folderName, folder.color AS folderColor, folder.display AS folderDisplay, folder.type AS folderType, f.inherited_type AS folderInheritedType, folder.unified AS folderUnified, folder.read_only AS folderReadOnly" + ", IFNULL(identity.display, identity.name) AS identityName, identity.email AS identityEmail, identity.color AS identityColor, identity.synchronize AS identitySynchronize" + - ", '[' || (SELECT group_concat(`from`, ',') FROM (SELECT DISTINCT `from` FROM message m0 WHERE m0.account = message.account AND m0.thread = message.thread ORDER BY m0.received DESC LIMIT 3)) || ']' AS senders" + - ", '[' || (SELECT group_concat(`to`, ',') FROM (SELECT DISTINCT `to` FROM message m0 WHERE m0.account = message.account AND m0.thread = message.thread ORDER BY m0.received DESC LIMIT 3)) || ']' AS recipients" + + ", '[' || (SELECT group_concat(`from`, ',') FROM (SELECT DISTINCT `from` FROM message m0 WHERE m0.thread = message.thread ORDER BY m0.received DESC LIMIT 3)) || ']' AS senders" + + ", '[' || (SELECT group_concat(`to`, ',') FROM (SELECT DISTINCT `to` FROM message m0 WHERE m0.thread = message.thread ORDER BY m0.received DESC LIMIT 3)) || ']' AS recipients" + ", COUNT(message.id) AS count" + ", SUM(1 - message.ui_seen) AS unseen" + ", SUM(1 - message.ui_flagged) AS unflagged" + @@ -154,7 +154,7 @@ public interface DaoMessage { " THEN message.received ELSE 0 END) AS dummy" + " FROM message" + - " JOIN message AS mm ON mm.account = message.account AND mm.thread = message.thread" + + " JOIN message AS mm ON mm.thread = message.thread" + " AND (NOT :found OR mm.ui_found) AND (NOT mm.ui_hide OR :debug)" + " AND message.folder = :folder" +