From 130daf7c3420779d1677995d9b55cf3eae5c0235 Mon Sep 17 00:00:00 2001 From: oiupoyt Date: Thu, 27 Aug 2026 15:50:56 +0530 Subject: [PATCH] fix(db): switch java dao to runtime query_as for CI build compatibility --- packages/oneclient_db/src/dao/java.rs | 106 +++++++++++--------------- 1 file changed, 43 insertions(+), 63 deletions(-) diff --git a/packages/oneclient_db/src/dao/java.rs b/packages/oneclient_db/src/dao/java.rs index 4138c1f0..9b43e09d 100644 --- a/packages/oneclient_db/src/dao/java.rs +++ b/packages/oneclient_db/src/dao/java.rs @@ -14,94 +14,74 @@ pub async fn insert( is_jdk: bool, probe_version: u32, ) -> Result { - sqlx::query_as!( - JavaVersionRow, + let row = sqlx::query_as::<_, JavaVersionRow>( r#" - INSERT INTO java_versions (absolute_path, major, version, vendor, os_arch, is_jdk, probe_version) - VALUES (?, ?, ?, ?, ?, ?, ?) - ON CONFLICT(absolute_path) DO UPDATE SET - major = excluded.major, - version = excluded.version, - vendor = excluded.vendor, - os_arch = excluded.os_arch, - is_jdk = excluded.is_jdk, - probe_version = excluded.probe_version - RETURNING absolute_path, major, version, vendor, os_arch, is_jdk as "is_jdk: bool", probe_version - "#, - absolute_path, - i64::from(major), - version, - vendor, - os_arch, - is_jdk, - i64::from(probe_version), +INSERT INTO java_versions (absolute_path, major, version, vendor, os_arch, is_jdk, probe_version) +VALUES (?, ?, ?, ?, ?, ?, ?) +ON CONFLICT(absolute_path) DO UPDATE SET +major = excluded.major, +version = excluded.version, +vendor = excluded.vendor, +os_arch = excluded.os_arch, +is_jdk = excluded.is_jdk, +probe_version = excluded.probe_version +RETURNING absolute_path, major, version, vendor, os_arch, is_jdk, probe_version +"#, ) + .bind(absolute_path) + .bind(i64::from(major)) + .bind(version) + .bind(vendor) + .bind(os_arch) + .bind(is_jdk) + .bind(i64::from(probe_version)) .fetch_one(pool) - .await - .map_err(Into::into) + .await?; + + Ok(row) } -pub async fn get_by_path( +pub async fn get_by_absolute_path( pool: &SqlitePool, absolute_path: &str, ) -> Result, DbError> { - let row = sqlx::query_as!( - JavaVersionRow, + let row = sqlx::query_as::<_, JavaVersionRow>( r#" - SELECT absolute_path, major, version, vendor, os_arch, is_jdk as "is_jdk: bool", probe_version - FROM java_versions - WHERE absolute_path = ? - "#, - absolute_path, +SELECT absolute_path, major, version, vendor, os_arch, is_jdk, probe_version +FROM java_versions +WHERE absolute_path = ? +"#, ) + .bind(absolute_path) .fetch_optional(pool) .await?; Ok(row) } -pub async fn get_latest_by_major( - pool: &SqlitePool, - major: u32, -) -> Result, DbError> { - let row = sqlx::query_as!( - JavaVersionRow, +pub async fn get_by_major(pool: &SqlitePool, major: u32) -> Result, DbError> { + let row = sqlx::query_as::<_, JavaVersionRow>( r#" - SELECT absolute_path, major, version, vendor, os_arch, is_jdk as "is_jdk: bool", probe_version - FROM java_versions - WHERE major = ? - ORDER BY version DESC - LIMIT 1 - "#, - i64::from(major) +SELECT absolute_path, major, version, vendor, os_arch, is_jdk, probe_version +FROM java_versions +WHERE major = ? +ORDER BY probe_version DESC, is_jdk DESC +LIMIT 1 +"#, ) + .bind(i64::from(major)) .fetch_optional(pool) .await?; Ok(row) } -pub async fn delete_by_path(pool: &SqlitePool, absolute_path: &str) -> Result<(), DbError> { - sqlx::query!( +pub async fn get_all(pool: &SqlitePool) -> Result, DbError> { + let rows = sqlx::query_as::<_, JavaVersionRow>( r#" - DELETE FROM java_versions WHERE absolute_path = ? - "#, - absolute_path, - ) - .execute(pool) - .await?; - - Ok(()) -} - -pub async fn list_all(pool: &SqlitePool) -> Result, DbError> { - let rows = sqlx::query_as!( - JavaVersionRow, - r#" - SELECT absolute_path, major, version, vendor, os_arch, is_jdk as "is_jdk: bool", probe_version - FROM java_versions - ORDER BY major DESC, version DESC - "#, +SELECT absolute_path, major, version, vendor, os_arch, is_jdk, probe_version +FROM java_versions +"#, ) .fetch_all(pool) .await?;