Hook in the optimizer rules (#52172)
(cherry picked from commit 1f90d8cc56052fbf2af604e72f9f5ca73f5e75d5)
This commit is contained in:
parent
a21e2b211a
commit
74e7777cbb
|
@ -6,10 +6,18 @@
|
|||
|
||||
package org.elasticsearch.xpack.eql.optimizer;
|
||||
|
||||
import org.elasticsearch.xpack.ql.optimizer.OptimizerRules.BooleanLiteralsOnTheRight;
|
||||
import org.elasticsearch.xpack.ql.optimizer.OptimizerRules.BooleanSimplification;
|
||||
import org.elasticsearch.xpack.ql.optimizer.OptimizerRules.CombineBinaryComparisons;
|
||||
import org.elasticsearch.xpack.ql.optimizer.OptimizerRules.ConstantFolding;
|
||||
import org.elasticsearch.xpack.ql.optimizer.OptimizerRules.PropagateEquals;
|
||||
import org.elasticsearch.xpack.ql.optimizer.OptimizerRules.PruneFilters;
|
||||
import org.elasticsearch.xpack.ql.optimizer.OptimizerRules.PruneLiteralsInOrderBy;
|
||||
import org.elasticsearch.xpack.ql.optimizer.OptimizerRules.SetAsOptimized;
|
||||
import org.elasticsearch.xpack.ql.plan.logical.LogicalPlan;
|
||||
import org.elasticsearch.xpack.ql.rule.RuleExecutor;
|
||||
|
||||
import static java.util.Collections.emptyList;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class Optimizer extends RuleExecutor<LogicalPlan> {
|
||||
|
||||
|
@ -19,6 +27,22 @@ public class Optimizer extends RuleExecutor<LogicalPlan> {
|
|||
|
||||
@Override
|
||||
protected Iterable<RuleExecutor<LogicalPlan>.Batch> batches() {
|
||||
return emptyList();
|
||||
Batch operators = new Batch("Operator Optimization",
|
||||
new ConstantFolding(),
|
||||
// boolean
|
||||
new BooleanSimplification(),
|
||||
new BooleanLiteralsOnTheRight(),
|
||||
// needs to occur before BinaryComparison combinations
|
||||
new PropagateEquals(),
|
||||
new CombineBinaryComparisons(),
|
||||
// prune/elimination
|
||||
new PruneFilters(),
|
||||
new PruneLiteralsInOrderBy()
|
||||
);
|
||||
|
||||
Batch label = new Batch("Set as Optimized", Limiter.ONCE,
|
||||
new SetAsOptimized());
|
||||
|
||||
return Arrays.asList(operators, label);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue