pub trait QueryEngine: Send + Sync {
    // Required methods
    fn as_any(&self) -> &dyn Any;
    fn planner(&self) -> Arc<dyn LogicalPlanner>;
    fn name(&self) -> &str;
    fn describe<'life0, 'async_trait>(
        &'life0 self,
        plan: LogicalPlan,
        query_ctx: QueryContextRef,
    ) -> Pin<Box<dyn Future<Output = Result<DescribeResult>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn execute<'life0, 'async_trait>(
        &'life0 self,
        plan: LogicalPlan,
        query_ctx: QueryContextRef,
    ) -> Pin<Box<dyn Future<Output = Result<Output>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn register_aggregate_function(&self, func: AggregateUDF);
    fn register_scalar_function(&self, func: ScalarFunctionFactory);
    fn register_table_function(&self, func: Arc<TableFunction>);
    fn read_table(&self, table: TableRef) -> Result<DataFrame>;
    fn engine_context(&self, query_ctx: QueryContextRef) -> QueryEngineContext;
    fn engine_state(&self) -> &QueryEngineState;
}Required Methods§
Sourcefn as_any(&self) -> &dyn Any
 
fn as_any(&self) -> &dyn Any
Returns the query engine as Any so that it can be downcast to a specific implementation.
Sourcefn planner(&self) -> Arc<dyn LogicalPlanner>
 
fn planner(&self) -> Arc<dyn LogicalPlanner>
Returns the logical planner
Sourcefn describe<'life0, 'async_trait>(
    &'life0 self,
    plan: LogicalPlan,
    query_ctx: QueryContextRef,
) -> Pin<Box<dyn Future<Output = Result<DescribeResult>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn describe<'life0, 'async_trait>(
    &'life0 self,
    plan: LogicalPlan,
    query_ctx: QueryContextRef,
) -> Pin<Box<dyn Future<Output = Result<DescribeResult>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
Describe the given [LogicalPlan].
Sourcefn execute<'life0, 'async_trait>(
    &'life0 self,
    plan: LogicalPlan,
    query_ctx: QueryContextRef,
) -> Pin<Box<dyn Future<Output = Result<Output>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn execute<'life0, 'async_trait>(
    &'life0 self,
    plan: LogicalPlan,
    query_ctx: QueryContextRef,
) -> Pin<Box<dyn Future<Output = Result<Output>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
Execute the given [LogicalPlan].
Sourcefn register_aggregate_function(&self, func: AggregateUDF)
 
fn register_aggregate_function(&self, func: AggregateUDF)
Register an aggregate function.
§Panics
Will panic if the function with same name is already registered.
Sourcefn register_scalar_function(&self, func: ScalarFunctionFactory)
 
fn register_scalar_function(&self, func: ScalarFunctionFactory)
Register a scalar function. Will override if the function with same name is already registered.
Sourcefn register_table_function(&self, func: Arc<TableFunction>)
 
fn register_table_function(&self, func: Arc<TableFunction>)
Register table function
Sourcefn read_table(&self, table: TableRef) -> Result<DataFrame>
 
fn read_table(&self, table: TableRef) -> Result<DataFrame>
Create a DataFrame from a table.
Sourcefn engine_context(&self, query_ctx: QueryContextRef) -> QueryEngineContext
 
fn engine_context(&self, query_ctx: QueryContextRef) -> QueryEngineContext
Create a QueryEngineContext.
Sourcefn engine_state(&self) -> &QueryEngineState
 
fn engine_state(&self) -> &QueryEngineState
Retrieve the query engine state QueryEngineState