Description
the problem i met here is :
when you use beginTransaction() function, if there are too many sql statements lines between beginTransaction() function and endTranaction() . the code will crash and return error code "sqlite SQL logic error or missing database "
and code here is example, the problem is Complete reproducibility.
[code]
db = SQLiteDatabase.openOrCreateDatabase(databaseFile, "test123", null);
// LOG.d("db", "call from" + Thread.currentThread().getId());
String _ID = "_id";
db.beginTransaction();
db.execSQL(" CREATE TABLE IF NOT EXISTS ttt (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS rwerw (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS erwe (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS werwe (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS wqrwe (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS werwerwet (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS twee (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio1 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio2 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio3 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio4 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio41 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio42 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio43 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio44 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio45 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio46 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio47 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio48 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.execSQL(" CREATE TABLE IF NOT EXISTS ouio49 (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, ttt TEXT);");
db.endTransaction();
[/code]