13 lines
437 B
Rust
13 lines
437 B
Rust
use std::sync::Arc;
|
|
|
|
use api::QueryResult;
|
|
use api::query::session::SessionCtx;
|
|
use datafusion::physical_optimizer::PhysicalOptimizerRule;
|
|
use datafusion::physical_plan::ExecutionPlan;
|
|
|
|
pub trait PhysicalOptimizer {
|
|
fn optimize(&self, plan: Arc<dyn ExecutionPlan>, session: &SessionCtx) -> QueryResult<Arc<dyn ExecutionPlan>>;
|
|
|
|
fn inject_optimizer_rule(&mut self, optimizer_rule: Arc<dyn PhysicalOptimizerRule + Send + Sync>);
|
|
}
|