Adrian Witaszak
03/19/2023, 10:12 AMjava.lang.UnsatisfiedLinkError: dlopen failed: library "libsqlitejdbc.so" not found
. Not updating SqlDelight but updating Kotlin gives me a lot of Redeclaration
errors.vbsteven
03/20/2023, 5:50 PMbeginControlFlow()
/ endControlFlow()
chains more readable?
.controlFlow(".let") {
add("%T.fromNativeValue(it)", returnTypeInfo.kotlinTypeName)
}
Although the trailing lambda will interfere with the varargs arguments and would need some additional wrapping in a function or CodeBlock.Builder
vbsteven
03/21/2023, 8:49 AMDavid Carr
03/21/2023, 10:32 PMIf the driver supports it, migrations are run in a transaction. You should not surround your migrations inWe have hundreds of migrations in our app that start with, as this can cause a crash with some drivers.BEGIN/END TRANSACTION
BEGIN TRANSACTION
and end with COMMIT
that have worked fine. Recently, we encountered an upgrade that triggered a android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5 SQLITE_BUSY[5])
exception, and removing this fixed it.
Do all migrations on Android already run in a transaction? Was looking at the driver code, and couldn't see where that is done. Is this advice accurate? Should we remove BEGIN TRANSACTION
from our existing migration files to be safe, and continue avoiding it going forward?Nikky
03/22/2023, 12:44 PMe: Multiple values are not allowed for plugin option androidx.compose.compiler.plugins.kotlin:generateDecoys
seeing a working sample might help me in figuring out the misconfiguration… if there is any…Trevor Stone
03/22/2023, 6:30 PMmolecule
has to leverage a single global slot table regardless of how many flows are created. I assume these are also shared with compose-ui as well. Is there anywhere I can get a better understanding for what that means structurally when flows are move between being active and completed? I read in this that moving the gap is an O(n) operation. Would that happen for each new flow?jw
03/22/2023, 7:27 PMjw
03/22/2023, 7:28 PMjw
03/22/2023, 7:34 PMTrevor Stone
03/22/2023, 8:00 PMTrevor Stone
03/22/2023, 8:01 PMjw
03/22/2023, 8:02 PMkevin.cianfarini
03/22/2023, 8:06 PMRecomposer
to manage state separately, but would happily (and begrudgingly) be proven wrong 😬jw
03/22/2023, 8:21 PMTrevor Stone
03/22/2023, 8:23 PMjw
03/22/2023, 8:27 PMjw
03/22/2023, 8:27 PMjw
03/22/2023, 8:28 PMTrevor Stone
03/22/2023, 8:31 PMval snapshotHandle =
Snapshot.registerGlobalWriteObserver {
if (!applyScheduled) {
applyScheduled = true
launch {
applyScheduled = false
Snapshot.sendApplyNotifications()
}
}
}
jw
03/22/2023, 9:15 PMeygraber
03/23/2023, 8:03 PMkevin.cianfarini
03/23/2023, 9:33 PMeygraber
03/23/2023, 9:55 PMManuel Pérez Alcolea
03/24/2023, 5:17 AMSELECT book.*, GROUP_CONCAT(tag.title, CHAR(10)) tags FROM tag
JOIN book_tag_association AS ass ON tag.id = ass.tag_id
JOIN book ON ass.book_id = book.id
WHERE book.id = :book_id;
which generates a data class with everything a book
has but also a tags: String
. Is it possible to generate that class but with a tags: Set<String>
instead?hfhbd
03/24/2023, 8:09 AMManuel Pérez Alcolea
03/24/2023, 8:22 PMList
would be fine tooManuel Pérez Alcolea
03/25/2023, 4:30 AMStackOverflowError
when I try to to generate interfaces with SQLDelight 2.0.0-alpha05, @ `app.cash.sqldelight.gradle.SqlDelightTask$GenerateInterfaces`:
> Failed to compile {}: [] :
CREATE VIRTUAL TABLE bookfts USING fts5(book_id, title)
I'm not sure if I'm doing something wrong or if it's a bug.
Caused by: java.lang.StackOverflowError
at com.intellij.openapi.progress.impl.CoreProgressManager.isInNonCancelableSection(CoreProgressManager.java:774)
at com.intellij.openapi.progress.impl.CoreProgressManager.doCheckCanceled(CoreProgressManager.java:134)
at com.intellij.openapi.progress.ProgressManager.checkCanceled(ProgressManager.java:211)
at com.intellij.openapi.progress.ProgressIndicatorProvider.checkCanceled(ProgressIndicatorProvider.java:23)
at com.intellij.psi.impl.source.tree.CompositeElement.getPsi(CompositeElement.java:687)
at com.intellij.psi.impl.source.SourceTreeToPsiMap.treeElementToPsi(SourceTreeToPsiMap.java:16)
at com.intellij.psi.impl.source.tree.SharedImplUtil.getParent(SharedImplUtil.java:33)
at com.intellij.extapi.psi.ASTWrapperPsiElement.getParent(ASTWrapperPsiElement.java:19)
at com.alecstrong.sql.psi.core.psi.SqlColumnReference.unsafeResolve$core(SqlColumnReference.kt:33)
at com.alecstrong.sql.psi.core.psi.SqlColumnReference$resolved$1.invoke(SqlColumnReference.kt:22)
at com.alecstrong.sql.psi.core.psi.SqlColumnReference$resolved$1.invoke(SqlColumnReference.kt:20)
at com.alecstrong.sql.psi.core.ModifiableFileLazy.forFile(ModifiableFileLazy.kt:22)
at com.alecstrong.sql.psi.core.psi.SqlColumnReference.resolve(SqlColumnReference.kt:28)
at app.cash.sqldelight.core.lang.util.ColumnDefSourceKt.columnDefSource(ColumnDefSource.kt:11)
the last line is where the stack overflow is occurring. It works if I specify typenames (fts5(notindexed=book_id INTEGER, title TEXT)
), although the sqlite documentation says it's wrong to add them in fts5, and that they're not needed and are in fact ignored in fts3/4.grahamborland
03/28/2023, 2:48 PMcommonTest
for queries which are only used in test code? I tried adding a .sq
file under commonTest
but it couldn’t see the schema definition in commonMain
.jw
03/28/2023, 3:03 PM