From ae0354737c7720db1820ad0fc2041ecfbc55be9a Mon Sep 17 00:00:00 2001 From: qiaoyuang Date: Wed, 12 Feb 2025 00:26:52 +0800 Subject: [PATCH 1/2] Update sqlite-jdbc's version to 3.49.0.0 --- gradle/libs.versions.toml | 2 +- sqllin-driver/README.md | 2 +- sqllin-driver/README_CN.md | 2 +- .../kotlin/com/ctrip/sqllin/driver/ExtensionAndroid.kt | 4 ++-- .../kotlin/com/ctrip/sqllin/driver/JdbcDatabaseConnection.kt | 1 - sqllin-driver/src/nativeInterop/cinterop/sqlite3.def | 5 ++--- 6 files changed, 7 insertions(+), 9 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 62a1770..7a24844 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,7 +8,7 @@ coroutines = "1.10.1" androidx-annotation = "1.9.1" androidx-test = "1.6.1" androidx-test-runner = "1.6.2" -sqlite-jdbc = "3.48.0.0" +sqlite-jdbc = "3.49.0.0" [libraries] diff --git a/sqllin-driver/README.md b/sqllin-driver/README.md index f5541b0..213b0ea 100644 --- a/sqllin-driver/README.md +++ b/sqllin-driver/README.md @@ -35,7 +35,7 @@ _sqllin-driver_ use the _New Native Driver_. Whatever, [SQLiter](https://github.com/touchlab/SQLiter) still is a good project. I referred to a lot of designs and code details from it and use them in _New Native Driver_ in _sqllin-driver_ . -Since `1.2.0`, SQLlin started to support JVM target, and it's base on [sqlite-jdbc](https://github.com/xerial/sqlite-jdbc). +Since `1.2.0`, SQLlin started to support JVM target, and it's based on [sqlite-jdbc](https://github.com/xerial/sqlite-jdbc). ## Basic usage diff --git a/sqllin-driver/README_CN.md b/sqllin-driver/README_CN.md index 73776df..0a4bd11 100644 --- a/sqllin-driver/README_CN.md +++ b/sqllin-driver/README_CN.md @@ -7,7 +7,7 @@ source set 可用的通用 API,并且它们在不同的平台有不同的实现。 在 Android 上,并没有太多的方法可供我们选择。如果我们使用 Android Framework SQLite Java -API,事情将会变得非常简单,但是缺点是很多 SQLite 参数不能再 Android P 以下版本的系统上生效。如果我们自己编写 +API,事情将会变得非常简单,但是缺点是很多 SQLite 参数不能在 Android P 以下版本的系统上生效。如果我们自己编写 JNI 代码去调用 SQLite C 函数,看起来可以解决这个问题,但是会遇到一个更大的问题:在版本高于 Android N 的系统上,Google 不允许开发者在 NDK 中调用系统内置的 SQLite C 函数。如果我们坚定地选择这条路,我们必须自己将 SQLite 源码编译到 _sqllin-driver_ ,这将让我们的工程变得更复杂。最后我们还是选择了基于 Android Framework Java API。 diff --git a/sqllin-driver/src/androidMain/kotlin/com/ctrip/sqllin/driver/ExtensionAndroid.kt b/sqllin-driver/src/androidMain/kotlin/com/ctrip/sqllin/driver/ExtensionAndroid.kt index dbab676..95cdc88 100644 --- a/sqllin-driver/src/androidMain/kotlin/com/ctrip/sqllin/driver/ExtensionAndroid.kt +++ b/sqllin-driver/src/androidMain/kotlin/com/ctrip/sqllin/driver/ExtensionAndroid.kt @@ -34,9 +34,9 @@ public fun Context.toDatabasePath(): DatabasePath = AndroidDatabasePath(this) internal value class AndroidDatabasePath(val context: Context) : DatabasePath public actual fun openDatabase(config: DatabaseConfiguration): DatabaseConnection { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P && config.inMemory) - return AndroidDatabaseConnection(createInMemory(config.toAndroidOpenParams())) val isEqualsOrHigherThanAndroidP = Build.VERSION.SDK_INT >= Build.VERSION_CODES.P + if (isEqualsOrHigherThanAndroidP && config.inMemory) + return AndroidDatabaseConnection(createInMemory(config.toAndroidOpenParams())) val helper = if (isEqualsOrHigherThanAndroidP) AndroidDBHelper(config) else diff --git a/sqllin-driver/src/jvmMain/kotlin/com/ctrip/sqllin/driver/JdbcDatabaseConnection.kt b/sqllin-driver/src/jvmMain/kotlin/com/ctrip/sqllin/driver/JdbcDatabaseConnection.kt index 96893a2..78ce019 100644 --- a/sqllin-driver/src/jvmMain/kotlin/com/ctrip/sqllin/driver/JdbcDatabaseConnection.kt +++ b/sqllin-driver/src/jvmMain/kotlin/com/ctrip/sqllin/driver/JdbcDatabaseConnection.kt @@ -16,7 +16,6 @@ package com.ctrip.sqllin.driver -import java.lang.IllegalStateException import java.sql.Connection import java.sql.PreparedStatement diff --git a/sqllin-driver/src/nativeInterop/cinterop/sqlite3.def b/sqllin-driver/src/nativeInterop/cinterop/sqlite3.def index deb66a3..bf6e6a8 100644 --- a/sqllin-driver/src/nativeInterop/cinterop/sqlite3.def +++ b/sqllin-driver/src/nativeInterop/cinterop/sqlite3.def @@ -2,9 +2,8 @@ package = com.ctrip.sqllin.sqlite3 headers = sqlite3.h headerFilter = sqlite3*.h -linkerOpts.linux_x64 = -lpthread -ldl -linkerOpts.macos_x64 = -lpthread -ldl -linkerOpts.macos_arm64 = -lpthread -ldl +linkerOpts.linux = -lpthread -ldl +linkerOpts.mingw = -lpthread noStringConversion = sqlite3_prepare_v2 sqlite3_prepare_v3 From bcd2f9865244183b058e0fd03a55ad73051cf192 Mon Sep 17 00:00:00 2001 From: qiaoyuang Date: Wed, 12 Feb 2025 14:13:27 +0800 Subject: [PATCH 2/2] Fix .def file --- CHANGELOG.md | 6 ++++++ sqllin-driver/src/nativeInterop/cinterop/sqlite3.def | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dd19d25..5f52a66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # SQLlin Change Log - Date format: YYYY-MM-dd +- +## v1.4.2 / 2025-xx-xx + +### sqllin-driver + +* Update the `sqlite-jdbc`'s version to `3.49.0.0` ## v1.4.1 / 2025-02-04 diff --git a/sqllin-driver/src/nativeInterop/cinterop/sqlite3.def b/sqllin-driver/src/nativeInterop/cinterop/sqlite3.def index bf6e6a8..e49bf69 100644 --- a/sqllin-driver/src/nativeInterop/cinterop/sqlite3.def +++ b/sqllin-driver/src/nativeInterop/cinterop/sqlite3.def @@ -3,7 +3,6 @@ headers = sqlite3.h headerFilter = sqlite3*.h linkerOpts.linux = -lpthread -ldl -linkerOpts.mingw = -lpthread noStringConversion = sqlite3_prepare_v2 sqlite3_prepare_v3