undo borked DB query from cherry-pick

Phillip Davis created

Change summary

src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java | 19 
1 file changed, 11 insertions(+), 8 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java 🔗

@@ -1739,9 +1739,14 @@ public class DatabaseBackend extends SQLiteOpenHelper {
         SQLiteDatabase db = this.getReadableDatabase();
 
         String[] selectionArgs = {conversation.getUuid(), uuid, uuid, uuid};
-        Cursor cursor = db.query(Message.TABLENAME, null, Message.CONVERSATION
-                + "=? and (" + Message.SERVER_MSG_ID + "=? or " + Message.REMOTE_MSG_ID +  "=? or " + Message.UUID + "=?)", selectionArgs, null, null, Message.TIME_SENT
-                + " DESC", String.valueOf(1));
+        Cursor cursor = db.rawQuery(
+                "SELECT * FROM " + Message.TABLENAME + " " +
+                "LEFT JOIN cheogram." + Message.TABLENAME +
+                "  USING (" + Message.UUID + ")" +
+                " WHERE " + Message.CONVERSATION + "=? AND (" +
+                Message.SERVER_MSG_ID + "=? OR " + Message.REMOTE_MSG_ID + "=? OR " + Message.UUID + "=?)" +
+                " ORDER BY " + Message.TIME_SENT + " DESC LIMIT 1",
+                selectionArgs);
         CursorUtils.upgradeCursorWindowSize(cursor);
         Message anchorMessage = null;
         while (cursor.moveToNext()) {
@@ -1828,8 +1833,7 @@ public class DatabaseBackend extends SQLiteOpenHelper {
         } else {
             String[] selectionArgs = {conversation.getUuid(),
                     Long.toString(timestamp)};
-            cursor = db.rawQuery(
-                "SELECT * FROM " + Message.TABLENAME + " " +
+            final String query = "SELECT * FROM " + Message.TABLENAME + " " +
                 "LEFT JOIN cheogram." + Message.TABLENAME +
                 "  USING (" + Message.UUID + ")" +
                 " WHERE " + Message.UUID + " IN (" +
@@ -1838,9 +1842,8 @@ public class DatabaseBackend extends SQLiteOpenHelper {
                 Message.TIME_SENT + comparsionOperation +
                 "ORDER BY " + Message.TIME_SENT + sorting +
                 "LIMIT " + String.valueOf(limit) + ") " +
-                "ORDER BY " + Message.TIME_SENT + sorting,
-                selectionArgs
-            );
+                "ORDER BY " + Message.TIME_SENT + sorting;
+            cursor = db.rawQuery(query, selectionArgs);
         }
         CursorUtils.upgradeCursorWindowSize(cursor);
         final Multimap<String, Message> waitingForReplies = HashMultimap.create();