the following code, which adds a column to a table, if not already present, throws a SQLiteBlobTooBigException, but only when running on SDK 28
this is the exception description:
DB.AddColumnToDB: (SQLiteBlobTooBigException) android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=1
***** Stack trace: *****
(SQLiteBlobTooBigException) android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=1
Code runs fine on previous SDK versions.
the table i'm adding column to is defined as follows
the only other similar SDK 28 related issue i've found is this one from stackoverflow:
https://stackoverflow.com/questions...-big-to-fit-into-cursorwindow-requiredpos-0-t
anyone else with a similar issue?
B4X:
Sub AddColumnToDB(sTableName As String, sColumnName As String, sType As String)
Try
Dim j As Int
Dim bFound As Boolean
Dim cur As Cursor
bFound = False
cur = sql.ExecQuery("select * from " & sTableName & " limit 1")
cur.Position = 0
For j = 0 To cur.ColumnCount - 1
If cur.GetColumnName(j).ToLowerCase = sColumnName.ToLowerCase Then ' already updated
bFound = True
Exit
End If
Next
cur.Close
If bFound = False Then
WriteLog("Adding column " & sColumnName & " to table " & sTableName)
sql.ExecNonQuery("ALTER TABLE " & sTableName & " ADD COLUMN " & sColumnName & " " & sType & ";") ' add column
End If
Catch
util.HandleException("DB.AddColumnToDB", util.EXCEPTION_CRITICAL)
End Try
End Sub
this is the exception description:
DB.AddColumnToDB: (SQLiteBlobTooBigException) android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=1
***** Stack trace: *****
(SQLiteBlobTooBigException) android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=1
Code runs fine on previous SDK versions.
the table i'm adding column to is defined as follows
B4X:
sCreateTable_FASTLOG = "CREATE TABLE IF NOT EXISTS " & DataTable & " (" & _
"TIMESTAMP INT" & "," & _
"RPS INT" & "," & _
"ODO REAL" & "," & _
"SPEED_OBD REAL" & "," & _
"GPS_LAT REAL" & "," & _
"GPS_LON REAL" & "," & _
"GPS_SPEED REAL" & "," & _
"GPS_ALT REAL" & "," & _
"HV_V REAL" & "," & _
"HV_A REAL" & "," & _
"SOC REAL" & "," & _
"ICE_TEMP INT" & "," & _
"ICE_RPM INT" & "," & _
"ICE_PWR REAL" & "," & _
"BRK_REG_TRQ REAL" & "," & _
"BRK_MCYL_TRQ REAL" & "," & _
"TRIP_NBS INT" & "," & _
"TRIP_EV_NBS INT" & "," & _
"TRIP_MOV_NBS INT" & "," & _
"TRIP_DIST REAL" & "," & _
"TRIP_EV_DIST REAL" & "," & _
"HSI INT" & "," & _
"MG2_RPM INT" & "," & _
"IGN REAL" & "," & _
"LTFT REAL" & "," & _
"STFT REAL" & "," & _
"TRIPFUEL REAL" & "," & _
"FUELFLOWH REAL" & "," & _
"DCL REAL" & "," & _
"CCL REAL" & "," & _
"BSFC INT" & "," & _
"ICE_LOAD INT" & "," & _
"INVERTER_TEMP INT" & "," & _
"BATTERY_TEMP INT" & "," & _
"MG_TEMP INT" & "," & _
"INHALING_TEMP INT" & "," & _
"AMBIENT_TEMP INT" & "," & _
"ROOM_TEMP INT" & "," & _
"MG2_TORQUE INT" & "," & _
"MG1_RPM INT" & "," & _
"MG1_TORQUE INT" & "," & _
"MGR_RPM INT" & "," & _
"MGR_TORQUE INT" & "," & _
"GLIDEINDEX REAL DEFAULT 0" & "," & _
"ACCELERATOR INT DEFAULT 0" & "," & _
"POSITIVEKWH REAL DEFAULT 0" & "," & _
"NEGATIVEKWH REAL DEFAULT 0" & "," & _
"PRIMARY KEY (TIMESTAMP));"
the only other similar SDK 28 related issue i've found is this one from stackoverflow:
https://stackoverflow.com/questions...-big-to-fit-into-cursorwindow-requiredpos-0-t
anyone else with a similar issue?