mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-10 23:26:53 +00:00
@@ -0,0 +1,36 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use async_trait::async_trait;
|
||||
|
||||
use crate::QueryResult;
|
||||
|
||||
use super::{
|
||||
execution::{Output, QueryStateMachine},
|
||||
logical_planner::Plan,
|
||||
Query,
|
||||
};
|
||||
|
||||
#[async_trait]
|
||||
pub trait QueryDispatcher: Send + Sync {
|
||||
async fn start(&self) -> QueryResult<()>;
|
||||
|
||||
fn stop(&self);
|
||||
|
||||
// fn create_query_id(&self) -> QueryId;
|
||||
|
||||
// fn query_info(&self, id: &QueryId);
|
||||
|
||||
async fn execute_query(&self, query: &Query) -> QueryResult<Output>;
|
||||
|
||||
async fn build_logical_plan(&self, query_state_machine: Arc<QueryStateMachine>) -> QueryResult<Option<Plan>>;
|
||||
|
||||
async fn execute_logical_plan(&self, logical_plan: Plan, query_state_machine: Arc<QueryStateMachine>) -> QueryResult<Output>;
|
||||
|
||||
async fn build_query_state_machine(&self, query: Query) -> QueryResult<Arc<QueryStateMachine>>;
|
||||
|
||||
// fn running_query_infos(&self) -> Vec<QueryInfo>;
|
||||
|
||||
// fn running_query_status(&self) -> Vec<QueryStatus>;
|
||||
|
||||
// fn cancel_query(&self, id: &QueryId);
|
||||
}
|
||||
Reference in New Issue
Block a user