package com.fsck.k9.mailstore.migrations; import android.database.sqlite.SQLiteDatabase; class MigrationTo58 { static void cleanUpOrphanedData(SQLiteDatabase db) { cleanUpFtsTable(db); cleanUpMessagePartsTable(db); } private static void cleanUpFtsTable(SQLiteDatabase db) { MigrationTo56.cleanUpFtsTable(db); } private static void cleanUpMessagePartsTable(SQLiteDatabase db) { db.execSQL("DELETE FROM message_parts WHERE root NOT IN " + "(SELECT message_part_id FROM messages WHERE deleted = 0 AND message_part_id IS NOT NULL)"); } static void createDeleteMessageTrigger(SQLiteDatabase db) { db.execSQL("DROP TRIGGER IF EXISTS delete_message"); db.execSQL("CREATE TRIGGER delete_message " + "BEFORE DELETE ON messages " + "BEGIN " + "DELETE FROM message_parts WHERE root = OLD.message_part_id; " + "DELETE FROM messages_fulltext WHERE docid = OLD.id; " + "END"); } }