Merge commit 'd803bfe2b1fe7f5e219e50ac20d6801a0a58ac75' as 'vendor/ruvector'
This commit is contained in:
52
vendor/ruvector/crates/rvlite/src/lib_sql.rs
vendored
Normal file
52
vendor/ruvector/crates/rvlite/src/lib_sql.rs
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
// Integration of SQL module into RvLite
|
||||
// This shows the minimal changes needed to lib.rs
|
||||
|
||||
use wasm_bindgen::prelude::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashMap;
|
||||
|
||||
// Import ruvector-core
|
||||
use ruvector_core::{
|
||||
VectorDB, VectorEntry, SearchQuery,
|
||||
DistanceMetric,
|
||||
};
|
||||
use ruvector_core::types::DbOptions;
|
||||
|
||||
// SQL module
|
||||
pub mod sql;
|
||||
|
||||
// RvLite struct needs to include sql_engine field:
|
||||
// sql_engine: sql::SqlEngine,
|
||||
|
||||
// In RvLite::new(), initialize the SQL engine:
|
||||
// sql_engine: sql::SqlEngine::new(),
|
||||
|
||||
// Replace the sql() method with this implementation:
|
||||
/*
|
||||
/// Execute SQL query
|
||||
pub async fn sql(&self, query: String) -> Result<JsValue, JsValue> {
|
||||
// Parse SQL
|
||||
let mut parser = sql::SqlParser::new(&query)
|
||||
.map_err(|e| RvLiteError {
|
||||
message: format!("SQL parse error: {}", e),
|
||||
kind: ErrorKind::SqlError,
|
||||
})?;
|
||||
|
||||
let statement = parser.parse()
|
||||
.map_err(|e| RvLiteError {
|
||||
message: format!("SQL parse error: {}", e),
|
||||
kind: ErrorKind::SqlError,
|
||||
})?;
|
||||
|
||||
// Execute statement
|
||||
let result = self.sql_engine.execute(statement)
|
||||
.map_err(|e| JsValue::from(e))?;
|
||||
|
||||
// Serialize result
|
||||
serde_wasm_bindgen::to_value(&result)
|
||||
.map_err(|e| RvLiteError {
|
||||
message: format!("Failed to serialize result: {}", e),
|
||||
kind: ErrorKind::WasmError,
|
||||
}.into())
|
||||
}
|
||||
*/
|
||||
Reference in New Issue
Block a user