Zoltan Demant
05/26/2025, 9:50 AMWHERE endTime IS NOT NULL
I get identical behavior between the two.
active:
SELECT *
FROM sessionSql
WHERE endTime IS NULL
ORDER BY startTime;
recent:
SELECT *
FROM sessionSql
WHERE endTime IS NOT NULL
ORDER BY endTime DESC
LIMIT :count;
Cies
05/27/2025, 12:15 AMSET ROLE anon;
on Postgres, through SQLDelight?maylo0852
05/27/2025, 1:33 PMreplaces
in a separate android test module (apply com.android.test) ?
@Module
@ContributesTo(
scope = AppScope::class,
replaces = [ActualModule::class],
)
object TestActualModule {
@Provides
@SingleIn(AppScope::class)
fun providesTestImpl(): TestImpl = TestImpl()
}
Anvil correctly generates Factory class for this, but it's not contributed in the DaggerAppComponent
Cies
05/28/2025, 8:57 AMbod
05/28/2025, 2:35 PMShubham Singh
06/01/2025, 3:20 PMZoltan Demant
06/02/2025, 11:00 AMYassine Abou
06/03/2025, 12:46 AMimplementation(libs.sqldelight.web.driver)
implementation(npm("sql.js", libs.versions.sqlJs.get()))
implementation(npm("@cashapp/sqldelight-sqljs-worker", "2.1.0"))
implementation(devNpm("copy-webpack-plugin", libs.versions.webPackPlugin.get()))
}Bas de Groot
06/03/2025, 6:45 AM$someEnv
or $someOtherEnv
, as shown below:
SELECT
...
FROM
$someEnv.some_table td ON td.transaction_dossier_id = cs.transaction_dossier_id
JOIN
$someOtherEnv.some_other_table mc_go ON rv.grid_operator = mc_go.mtc_ean
How can we best support this behavior in SQLDelight? Is there a way to dynamically parameterize or pass these prefixes at runtime? Any guidance or workarounds would be greatly appreciated.ursus
06/03/2025, 6:42 PMYassine Abou
06/05/2025, 3:51 AMSlackbot
06/06/2025, 3:40 AMjrod
06/10/2025, 8:17 PMverifyMigrations
only on check
runs, but if I run assemble
or install
(assume an Android project), then verify won't run.
1. is that right?
2. if so, is the solution to explicitly Gradle-wire the task to `assemble`/`install`?
3. if so, got a lazyweb snippet handy? the AGP variant.assembleProvider way seems to no longer be available in later versions.Yassine Abou
06/11/2025, 12:27 AMcomposeApp.uninstantiated.mjs:189 WebWorkerException:
{
"message":"Uncaught SyntaxError: Unexpected token '<'",
"type":"error"
} isTrusted,true
kotlinx.coroutines.error_$external_fun @ composeApp.uninstantiated.mjs:189
Is this primarily a
SQLDelight configuration issue or a coroutines uncaught exception?
Relevant Code Snippets:
Database Configuration:
private val workerScriptUrl: String =
js("""new URL("@cashapp/sqldelight-sqljs-worker/sqljs.worker.js", import.meta.url)""")
actual val platformModule = module {
single {
val driver = WebWorkerDriver(Worker(workerScriptUrl)).apply {
enableForeignKeys()
}
LlmsDatabaseWrapper(driver, LlmsDatabase(driver))
}
}
Webpack Configuration (sqljs.js)
config.resolve = {
fallback: {
fs: false,
path: false,
crypto: false,
}
};
const CopyWebpackPlugin = require('copy-webpack-plugin');
config.plugins.push(
new CopyWebpackPlugin({
patterns: [
'../../node_modules/sql.js/dist/sql-wasm.wasm'
]
})
);
for more context. check out this repository link: https://github.com/yassineAbou/LLMSbod
06/11/2025, 9:41 AMgenerateAsync.set(true)
. Any call to driver.executeQuery()
should be migrated to driver.awaitQuery()
, right?
But this doesn't seem to work with a non-async driver such as the JDBC one on the JVM. For instance I'm doing this:
driver.awaitQuery(
null,
"PRAGMA $versionPragma",
{ cursor ->
// The cursor is already closed here
if (cursor.next().await()) {
cursor.getLong(0)
} else {
null
}
},
0
)
using the debugger I can see that my lambda is called after the statement has already been closed which obviously cannot work.
I must be missing something obvious? 🤔
Other extensions like awaitAsOneOrNull()
seem to work as expected.Michael Paus
06/12/2025, 9:54 AMEric Ampire [MOD]
06/15/2025, 5:50 PMKaran Sharma
06/16/2025, 11:36 AMBrian Gardner
06/16/2025, 5:44 PMAgustín Ponce
06/18/2025, 5:05 PMAlex
06/23/2025, 1:29 PMlast_insert_rowid()
Unknown function last_insert_rowid
SELECT last_insert_rowid()
^^^^^^^^^^^^^^^^^^^
last_insert_rowid()
is a part of SQLite, is there some kind of change made to override this in the latest update? I was unable to find anything directly referencing it in the changelogsursus
06/25/2025, 1:33 PMRyan Woodcock
06/27/2025, 4:51 AMColton Idle
06/29/2025, 2:38 PMjessewilson
06/29/2025, 5:06 PM5.0.0-alpha.17
in your projects and let me know if you run into any surprises?
OkHttp 5.x introduces separate -jvm
and -android
artifacts. We’ve had reports (issue 8826) that some builds incorrectly classes from both a okhttp-android
5.x artifact and a okhttp
4.x artifact, which causes crashes at runtime. I haven’t been able to reproduce this. If you can repro this, please reply on thread; I’d love to get to the bottom of this.
My intention is for 5.x to have zero backwards-incompatible changes with 4.12. If you see any, again please let me know.Zoltan Demant
07/04/2025, 4:17 AMprivate val database by lazy {
scope.async { init() }
}
suspend fun database() = database.await()
The suspend fun init()
function creates the actual database and makes sure some template data is inserted the first time around. The whole point is that this happens before other areas of my app can touch the database. Ive been doing this for years and it has worked brilliantly, but recently something seems to have changed: under some scenario, the database is accessed before the template data is inserted. Ill add some more details in 🧵 in order to keep this somewhat short.Vivek Modi
07/09/2025, 10:41 PMMark
07/10/2025, 6:58 AMAdam S
07/10/2025, 7:28 AMAdam S
07/11/2025, 10:20 AM.sq
file? https://sqldelight.github.io/sqldelight/2.1.0/jvm_sqlite/foreign_keys/