From d19cba049df0d498882ee47976c36d33ee66dcbb Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 7 Feb 2022 15:47:46 -0500 Subject: [PATCH] Fix reaction mms trigger. --- .../helpers/SignalDatabaseMigrations.kt | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SignalDatabaseMigrations.kt b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SignalDatabaseMigrations.kt index 9c60a98d3..e753e98b2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SignalDatabaseMigrations.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SignalDatabaseMigrations.kt @@ -184,8 +184,9 @@ object SignalDatabaseMigrations { private const val REACTION_REMOTE_DELETE_CLEANUP = 126 private const val PNI_CLEANUP = 127 private const val MESSAGE_RANGES = 128 + private const val REACTION_TRIGGER_FIX = 129 - const val DATABASE_VERSION = 128 + const val DATABASE_VERSION = 129 @JvmStatic fun migrate(context: Context, db: SQLiteDatabase, oldVersion: Int, newVersion: Int) { @@ -2268,6 +2269,22 @@ object SignalDatabaseMigrations { if (oldVersion < MESSAGE_RANGES) { db.execSQL("ALTER TABLE mms ADD COLUMN ranges BLOB DEFAULT NULL") } + + if (oldVersion < REACTION_TRIGGER_FIX) { + db.execSQL("DROP TRIGGER reactions_mms_delete") + db.execSQL("CREATE TRIGGER reactions_mms_delete AFTER DELETE ON mms BEGIN DELETE FROM reaction WHERE message_id = old._id AND is_mms = 1; END") + + db.execSQL( + // language=sql + """ + DELETE FROM reaction + WHERE + (is_mms = 0 AND message_id NOT IN (SELECT _id from sms)) + OR + (is_mms = 1 AND message_id NOT IN (SELECT _id from mms)) + """.trimIndent() + ) + } } @JvmStatic