diff --git a/src-tauri/src/commands/chat_tools.rs b/src-tauri/src/commands/chat_tools.rs index ad4ff15..35154e1 100644 --- a/src-tauri/src/commands/chat_tools.rs +++ b/src-tauri/src/commands/chat_tools.rs @@ -899,7 +899,9 @@ async fn build_sample_sql_postgres( limit: u32, ) -> TuskResult { let pool = state.get_pool(connection_id).await?; - let reltuples: f64 = sqlx::query_scalar( + // pg_class.reltuples is `real` (FLOAT4); decode as f32 then widen — sqlx is + // strict and reading it directly as f64 fails with a type-mismatch error. + let reltuples: f64 = sqlx::query_scalar::<_, f32>( "SELECT c.reltuples FROM pg_class c JOIN pg_namespace n ON c.relnamespace = n.oid \ WHERE n.nspname = $1 AND c.relname = $2", ) @@ -908,7 +910,7 @@ async fn build_sample_sql_postgres( .fetch_optional(&pool) .await .map_err(TuskError::Database)? - .unwrap_or(0.0); + .unwrap_or(0.0) as f64; let qualified = format!("{}.{}", escape_ident(schema), escape_ident(table)); if reltuples > 0.0 {