From cb3f9a6805e5b118e0bfa4bc0d4445aa70511bc4 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Sat, 24 Oct 2015 14:38:03 -0700 Subject: [PATCH] Distinct rows from join // FREEBIE --- src/org/thoughtcrime/securesms/database/MmsDatabase.java | 2 +- src/org/thoughtcrime/securesms/database/MmsSmsDatabase.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/org/thoughtcrime/securesms/database/MmsDatabase.java b/src/org/thoughtcrime/securesms/database/MmsDatabase.java index 00fae72f63..c938deeff8 100644 --- a/src/org/thoughtcrime/securesms/database/MmsDatabase.java +++ b/src/org/thoughtcrime/securesms/database/MmsDatabase.java @@ -309,7 +309,7 @@ public class MmsDatabase extends MessagingDatabase { private Cursor rawQuery(@NonNull String where, @Nullable String[] arguments) { SQLiteDatabase database = databaseHelper.getReadableDatabase(); - return database.rawQuery("SELECT " + Util.join(MMS_PROJECTION, ",") + + return database.rawQuery("SELECT DISTINCT " + Util.join(MMS_PROJECTION, ",") + " FROM " + MmsDatabase.TABLE_NAME + " LEFT OUTER JOIN " + AttachmentDatabase.TABLE_NAME + " ON (" + MmsDatabase.TABLE_NAME + "." + MmsDatabase.ID + " = " + AttachmentDatabase.TABLE_NAME + "." + AttachmentDatabase.MMS_ID + ")" + " WHERE " + where, arguments); diff --git a/src/org/thoughtcrime/securesms/database/MmsSmsDatabase.java b/src/org/thoughtcrime/securesms/database/MmsSmsDatabase.java index 97d3bda371..2ef65b4be0 100644 --- a/src/org/thoughtcrime/securesms/database/MmsSmsDatabase.java +++ b/src/org/thoughtcrime/securesms/database/MmsSmsDatabase.java @@ -222,6 +222,7 @@ public class MmsSmsDatabase extends Database { String unionQuery = unionQueryBuilder.buildUnionQuery(new String[] {smsSubQuery, mmsSubQuery}, order, limit); SQLiteQueryBuilder outerQueryBuilder = new SQLiteQueryBuilder(); + outerQueryBuilder.setDistinct(true); outerQueryBuilder.setTables("(" + unionQuery + ")"); String query = outerQueryBuilder.buildQuery(projection, null, null, null, null, null, null);