diff --git a/app/src/main/java/eu/faircode/email/DaoMessage.java b/app/src/main/java/eu/faircode/email/DaoMessage.java index b3ef6df664..b7d4a0abf9 100644 --- a/app/src/main/java/eu/faircode/email/DaoMessage.java +++ b/app/src/main/java/eu/faircode/email/DaoMessage.java @@ -290,12 +290,17 @@ public interface DaoMessage { " AND NOT ui_hide") LiveData> liveUnreadThread(long account, String thread); - @Query("SELECT SUM(fts) AS fts, COUNT(*) AS total FROM message" + + static String FTS_STATS = "SELECT SUM(fts) AS fts, COUNT(*) AS total FROM message" + " JOIN folder_view AS folder ON folder.id = message.folder" + " WHERE content" + - " AND folder.type <> '" + EntityFolder.OUTBOX + "'") + " AND folder.type <> '" + EntityFolder.OUTBOX + "'"; + + @Query(FTS_STATS) LiveData liveFts(); + @Query(FTS_STATS) + TupleFtsStats getFts(); + @Query("SELECT COUNT(*) FROM message" + " WHERE id IN (:ids)" + " AND (raw IS NULL OR NOT raw)") diff --git a/app/src/main/java/eu/faircode/email/Log.java b/app/src/main/java/eu/faircode/email/Log.java index eb5b754aba..2775620051 100644 --- a/app/src/main/java/eu/faircode/email/Log.java +++ b/app/src/main/java/eu/faircode/email/Log.java @@ -2848,6 +2848,13 @@ public class Log { if (cursor.moveToNext()) size += write(os, String.format("sqlite: %s\r\n", cursor.getString(0))); } + try { + TupleFtsStats stats = db.message().getFts(); + size += write(os, String.format("fts: %d/%d %s\r\n", stats.fts, stats.total, + Helper.humanReadableByteCount(Fts4DbHelper.size(context)))); + } catch (Throwable ex) { + size += write(os, String.format("%s\r\n", ex)); + } size += write(os, "\r\n");