Skip to main content

velesdb_core/collection/
graph_collection_query.rs

1//! VelesQL query execution for [`GraphCollection`].
2
3use std::collections::HashMap;
4
5use crate::collection::search::query::match_exec::MatchResult;
6use crate::error::Result;
7use crate::point::SearchResult;
8
9use super::graph_collection::GraphCollection;
10
11impl GraphCollection {
12    /// Executes a parsed `VelesQL` query.
13    ///
14    /// # Errors
15    ///
16    /// Returns an error if the query is invalid or execution fails.
17    pub fn execute_query(
18        &self,
19        query: &crate::velesql::Query,
20        params: &HashMap<String, serde_json::Value>,
21    ) -> Result<Vec<SearchResult>> {
22        self.inner.execute_query(query, params)
23    }
24
25    /// Executes a query with instrumentation and returns plan + actual stats.
26    ///
27    /// Delegates to [`crate::Database::explain_analyze_query`].
28    ///
29    /// # Errors
30    ///
31    /// Returns an error if the query is invalid or execution fails.
32    pub fn explain_analyze_query(
33        &self,
34        query: &crate::velesql::Query,
35        params: &HashMap<String, serde_json::Value>,
36    ) -> Result<crate::velesql::ExplainOutput> {
37        self.inner.explain_analyze_query(query, params)
38    }
39
40    /// Executes a raw VelesQL string, parsing it before execution.
41    ///
42    /// # Errors
43    ///
44    /// - Returns an error if the SQL string cannot be parsed.
45    /// - Returns an error if query execution fails.
46    pub fn execute_query_str(
47        &self,
48        sql: &str,
49        params: &HashMap<String, serde_json::Value>,
50    ) -> Result<Vec<SearchResult>> {
51        self.inner.execute_query_str(sql, params)
52    }
53
54    /// Executes a MATCH graph pattern query.
55    ///
56    /// # Errors
57    ///
58    /// Returns an error if the query cannot be executed.
59    pub fn execute_match(
60        &self,
61        match_clause: &crate::velesql::MatchClause,
62        params: &HashMap<String, serde_json::Value>,
63    ) -> Result<Vec<MatchResult>> {
64        self.inner.execute_match(match_clause, params)
65    }
66
67    /// Executes a MATCH query with vector similarity scoring.
68    ///
69    /// # Errors
70    ///
71    /// Returns an error on dimension mismatch or execution failure.
72    pub fn execute_match_with_similarity(
73        &self,
74        match_clause: &crate::velesql::MatchClause,
75        query_vector: &[f32],
76        similarity_threshold: f32,
77        params: &HashMap<String, serde_json::Value>,
78    ) -> Result<Vec<MatchResult>> {
79        self.inner.execute_match_with_similarity(
80            match_clause,
81            query_vector,
82            similarity_threshold,
83            params,
84        )
85    }
86}