Skip dropping automatic indices

They cannot be dropped manually
This commit is contained in:
Unpublished 2019-12-15 13:38:33 +01:00 committed by Niedermann IT-Dienstleistungen
parent 7d2ac43d40
commit a91150db41

View file

@ -27,11 +27,14 @@ public class DatabaseIndexUtil {
} }
public static void dropIndexes(@NonNull SQLiteDatabase db) { public static void dropIndexes(@NonNull SQLiteDatabase db) {
Cursor c = db.query("sqlite_master", new String[]{"name"}, "type=?", new String[]{"index"}, null, null, null); try (Cursor c = db.query("sqlite_master", new String[]{"name", "sql"}, "type=?", new String[]{"index"}, null, null, null)) {
while (c.moveToNext()) { while (c.moveToNext()) {
// Skip automatic indexes which we can't drop manually
if (c.getString(1) != null) {
Log.v(TAG, "Deleting database index: DROP INDEX " + c.getString(0)); Log.v(TAG, "Deleting database index: DROP INDEX " + c.getString(0));
db.execSQL("DROP INDEX " + c.getString(0)); db.execSQL("DROP INDEX " + c.getString(0));
} }
c.close(); }
}
} }
} }