Colton Idle
11/16/2023, 10:15 PMsuspend fun doesItemExist(id: String): Boolean {
var result = false
withContext(ioDispatcher) {
val item = myQueries.selectItemById(id).executeAsOneOrNull()
if (card != null) {
result = true
}
}
return result
}
suspend fun deleteAllThenInsertAllItems(bufferedReader: BufferedReader) =
withContext(isDispatcher) {
myQueries.transaction {
myQueries.deleteAll()
var currentLine: String? = null
while (bufferedReader.readLine().also { currentLine = it } != null) {
myQueries.insert(currentLine!!)
}
}
}
Derek Ellis
11/16/2023, 10:22 PMColton Idle
11/16/2023, 10:22 PMDerek Ellis
11/16/2023, 10:23 PMColton Idle
11/16/2023, 10:25 PMDerek Ellis
11/16/2023, 10:33 PMColton Idle
11/16/2023, 10:34 PMsaket
11/16/2023, 10:44 PMColton Idle
11/17/2023, 12:24 AMcallback = object : SupportSQLiteOpenHelper.Callback() {
override fun onCreate(db: SupportSQLiteDatabase) {
super.onConfigure(db)
setPragma(db, "JOURNAL_MODE = WAL")
setPragma(db, "SYNCHRONOUS = 2")
}
override fun onUpgrade(db: SupportSQLiteDatabase, oldVersion: Int, newVersion: Int) {
}
private fun setPragma(db: SupportSQLiteDatabase, pragma: String) {
val cursor = db.query("PRAGMA $pragma")
cursor.moveToFirst()
cursor.close()
}
}
Derek Ellis
11/17/2023, 3:01 AMenableWriteAheadLogging
on the SQLiteDatabase
object, right?
https://source.android.com/docs/core/perf/compatibility-walsaket
11/17/2023, 4:43 AMColton Idle
11/17/2023, 6:36 AMcallback = object : SupportSQLiteOpenHelper.Callback(1) {
override fun onCreate(db: SupportSQLiteDatabase) {
db.enableWriteAheadLogging()
}
override fun onUpgrade(db: SupportSQLiteDatabase, oldVersion: Int, newVersion: Int) {
TODO("Not yet implemented")
}
}
I am a bit confused on why i need to specify a version number as a constructor arg to SupportSQLiteOpenHelper.CallbackMyDb.Schema.version.toInt()
👀object : AndroidSqliteDriver.Callback(schema = MagnarDb.Schema) {
override fun onOpen(db: SupportSQLiteDatabase) {
db.enableWriteAheadLogging()
}
}
idk how i missed that. wow