From 2f700ed09ee3b31f39f140b4f17be816338d50d3 Mon Sep 17 00:00:00 2001 From: Neil Date: Sat, 9 May 2026 15:41:54 +0800 Subject: [PATCH 1/2] chore(powersync): align rusqlite with sqlx-sqlite --- Cargo.lock | 46 +++++++++++-------------------- examples/egui_todolist/Cargo.toml | 2 +- powersync/Cargo.toml | 2 +- powersync/src/db/internal.rs | 2 +- powersync/src/db/pool.rs | 4 +-- powersync/src/sync/upload.rs | 2 +- powersync/tests/crud_test.rs | 4 +-- powersync/tests/database_test.rs | 2 +- powersync_test_utils/Cargo.toml | 2 +- 9 files changed, 26 insertions(+), 40 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e03c179..2805b3f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1777,6 +1777,15 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", +] + [[package]] name = "hashbrown" version = "0.15.5" @@ -1797,11 +1806,11 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.11.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0b22561a9c04a7cb1a302c013e0259cd3b4bb619f145b32f72b8b4bcbed230" +checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" dependencies = [ - "hashbrown 0.16.1", + "hashbrown 0.14.5", ] [[package]] @@ -2316,9 +2325,9 @@ dependencies = [ [[package]] name = "libsqlite3-sys" -version = "0.37.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f111c8c41e7c61a49cd34e44c7619462967221a6443b0ec299e0ac30cfb9b1" +checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" dependencies = [ "cc", "pkg-config", @@ -3547,21 +3556,11 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rsqlite-vfs" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a1f2315036ef6b1fbacd1972e8ee7688030b0a2121edfc2a6550febd41574d" -dependencies = [ - "hashbrown 0.16.1", - "thiserror 2.0.18", -] - [[package]] name = "rusqlite" -version = "0.39.0" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d2b0146dd9661bf67bb107c0bb2a55064d556eeb3fc314151b957f313bcd4e" +checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" dependencies = [ "bitflags 2.11.0", "fallible-iterator", @@ -3569,7 +3568,6 @@ dependencies = [ "hashlink", "libsqlite3-sys", "smallvec", - "sqlite-wasm-rs", ] [[package]] @@ -4031,18 +4029,6 @@ dependencies = [ "bitflags 2.11.0", ] -[[package]] -name = "sqlite-wasm-rs" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4206ed3a67690b9c29b77d728f6acc3ce78f16bf846d83c94f76400320181b" -dependencies = [ - "cc", - "js-sys", - "rsqlite-vfs", - "wasm-bindgen", -] - [[package]] name = "stable_deref_trait" version = "1.2.1" diff --git a/examples/egui_todolist/Cargo.toml b/examples/egui_todolist/Cargo.toml index c6eb127..ed3635a 100644 --- a/examples/egui_todolist/Cargo.toml +++ b/examples/egui_todolist/Cargo.toml @@ -11,7 +11,7 @@ futures-lite = "2.6.1" log = "0.4.28" powersync = { path = "../../powersync", features = ["tokio", "reqwest"] } reqwest = { version = "0.13.2", features = ["json"] } -rusqlite = { version = "0.39.0", features = ["load_extension", "bundled"] } +rusqlite = { version = "0.32.0", features = ["load_extension", "bundled"] } serde = "1.0.228" serde_json = "1.0.145" tokio = { version = "1.47.1", features = ["rt-multi-thread", "net"] } diff --git a/powersync/Cargo.toml b/powersync/Cargo.toml index 12400a2..cc4a9b4 100644 --- a/powersync/Cargo.toml +++ b/powersync/Cargo.toml @@ -33,7 +33,7 @@ reqwest = { version = "0.13.2", default-features = false, optional = true, featu bytes = "1" log = "0.4.28" pin-project-lite = "0.2.16" -rusqlite = { version = "0.39.0", features = ["load_extension"] } +rusqlite = { version = "0.32.0", features = ["load_extension"] } scopeguard = "1.2.0" serde = { version = "1.0.219", features = ["derive", "rc"] } serde_json = { version = "1.0.143", features = ["raw_value"] } diff --git a/powersync/src/db/internal.rs b/powersync/src/db/internal.rs index 14edcc5..0be998e 100644 --- a/powersync/src/db/internal.rs +++ b/powersync/src/db/internal.rs @@ -83,7 +83,7 @@ impl InnerPowerSyncState { let serialized_schema = serde_json::to_string(&self.schema)?; conn.prepare("SELECT powersync_replace_schema(?)")? - .query_one(params![serialized_schema], |_| Ok(()))?; + .query_row(params![serialized_schema], |_| Ok(()))?; // TODO: Update readers? Should be fine at the moment because we're only doing this during // initialization. Ok(()) diff --git a/powersync/src/db/pool.rs b/powersync/src/db/pool.rs index 76024bb..9014b0e 100644 --- a/powersync/src/db/pool.rs +++ b/powersync/src/db/pool.rs @@ -25,7 +25,7 @@ impl ConnectionPool { connection .prepare("SELECT powersync_update_hooks('install');") .expect("should prepare statement for update hooks") - .query_one(params![], |_| Ok(())) + .query_row(params![], |_| Ok(())) .expect("could not install update hook"); Arc::new(Mutex::new(connection)) @@ -119,7 +119,7 @@ impl ConnectionPool { writer: &Connection, ) -> Result { let mut stmt = writer.prepare_cached("SELECT powersync_update_hooks('get');")?; - let rows: String = stmt.query_one(params![], |row| row.get(0))?; + let rows: String = stmt.query_row(params![], |row| row.get(0))?; let updates = serde_json::from_str::(&rows) .map_err(|_| Error::InvalidQuery)?; diff --git a/powersync/src/sync/upload.rs b/powersync/src/sync/upload.rs index bc052f5..111f097 100644 --- a/powersync/src/sync/upload.rs +++ b/powersync/src/sync/upload.rs @@ -298,7 +298,7 @@ impl<'a> CrudUpload<'a> { let client_id = { let reader = self.db.reader().await?; let mut stmt = reader.prepare("SELECT powersync_client_id()")?; - let id: String = stmt.query_one(params![], |row| row.get(0))?; + let id: String = stmt.query_row(params![], |row| row.get(0))?; id }; diff --git a/powersync/tests/crud_test.rs b/powersync/tests/crud_test.rs index bfb1f0b..9ad0c3c 100644 --- a/powersync/tests/crud_test.rs +++ b/powersync/tests/crud_test.rs @@ -305,7 +305,7 @@ fn raw_table_clear() { { let writer = db.writer().await.unwrap(); let mut stmt = writer.prepare("SELECT powersync_clear(0)").unwrap(); - stmt.query_one(params![], |_| Ok(())).unwrap(); + stmt.query_row(params![], |_| Ok(())).unwrap(); } assert_eq!( @@ -347,7 +347,7 @@ fn raw_table_crud_trigger() { for write in &["INSERT", "UPDATE", "DELETE"] { trigger_stmt - .query_one( + .query_row( params![serialized_table, format!("users_{write}"), write], |_| Ok(()), ) diff --git a/powersync/tests/database_test.rs b/powersync/tests/database_test.rs index af23bc6..03770ce 100644 --- a/powersync/tests/database_test.rs +++ b/powersync/tests/database_test.rs @@ -18,7 +18,7 @@ fn link_core_extension() { let reader = db.reader().await.unwrap(); let mut stmt = reader.prepare("SELECT powersync_rs_version();").unwrap(); - let _: String = stmt.query_one(params![], |row| row.get(0)).unwrap(); + let _: String = stmt.query_row(params![], |row| row.get(0)).unwrap(); }); } diff --git a/powersync_test_utils/Cargo.toml b/powersync_test_utils/Cargo.toml index 9e801b2..2591c52 100644 --- a/powersync_test_utils/Cargo.toml +++ b/powersync_test_utils/Cargo.toml @@ -16,7 +16,7 @@ log = "0.4.28" bytes = "1" pin-project-lite = "0.2.16" powersync = { path = "../powersync" } -rusqlite = { version = "0.39.0", features = ["load_extension", "bundled"] } +rusqlite = { version = "0.32.0", features = ["load_extension", "bundled"] } serde = "1.0.228" serde_json = "1.0.145" serde_with = "3.15.0" From 705779bf6cc1afbbee90a108385e2ab40d2fcfb7 Mon Sep 17 00:00:00 2001 From: Neil Date: Sat, 9 May 2026 15:43:06 +0800 Subject: [PATCH 2/2] chore(deps): update rustls webpki --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2805b3f..09d6f9b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3682,9 +3682,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.103.9" +version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ "aws-lc-rs", "ring",