use nodedb_sql::ddl_ast::parse_search_using_fusion;
use crate::control::security::identity::AuthenticatedIdentity;
use crate::control::state::SharedState;
use crate::types::DatabaseId;
use super::super::super::result::{DdlError, DdlResult};
use super::super::graph_ops::rag_fusion::rag_fusion;
use super::support::ddl_err;
pub async fn search_fusion(
state: &SharedState,
identity: &AuthenticatedIdentity,
database_id: DatabaseId,
sql: &str,
) -> Result<Vec<DdlResult>, DdlError> {
let (collection, params) = parse_search_using_fusion(sql).ok_or_else(|| {
ddl_err(
"42601",
"syntax: SEARCH <collection> USING FUSION(ARRAY[...] ...)",
)
})?;
rag_fusion(state, identity, database_id, collection, params).await
}