MCPcopy Create free account
hub / github.com/GraphLite-AI/GraphLite / optimize

Method optimize

graphlite/src/plan/optimizers/logical_optimizer.rs:34–58  ·  view source on GitHub ↗

Optimize a logical plan Originally: optimizer.rs line 1470

(&self, mut plan: LogicalPlan)

Source from the content-addressed store, hash-verified

32 /// Optimize a logical plan
33 /// Originally: optimizer.rs line 1470
34 pub fn optimize(&self, mut plan: LogicalPlan) -> Result<LogicalPlan, PlanningError> {
35 match self.optimization_level {
36 OptimizationLevel::None => Ok(plan),
37
38 OptimizationLevel::Basic => {
39 // Apply basic optimizations
40 plan = self.apply_predicate_pushdown(plan)?;
41 plan = self.apply_projection_elimination(plan)?;
42 plan = self.apply_subquery_unnesting(plan)?;
43 Ok(plan)
44 }
45
46 OptimizationLevel::Advanced | OptimizationLevel::Aggressive => {
47 // Apply all basic optimizations
48 plan = self.apply_predicate_pushdown(plan)?;
49 plan = self.apply_projection_elimination(plan)?;
50
51 // Apply advanced optimizations
52 plan = self.apply_subquery_unnesting(plan)?;
53 plan = self.apply_join_reordering(plan)?;
54
55 Ok(plan)
56 }
57 }
58 }
59
60 // ========================================================================
61 // Optimization Rules (to be fully extracted from optimizer.rs)

Callers 4

optimize_logical_planMethod · 0.45

Tested by 2