Interface QueryOptimizer.OptimizationRule
- All Known Implementing Classes:
QueryOptimizer.ColumnPruning, QueryOptimizer.ConstantFolding, QueryOptimizer.IndexSelection, QueryOptimizer.LimitPushDown, QueryOptimizer.PredicatePushDown
- Enclosing class:
QueryOptimizer
public static sealed interface QueryOptimizer.OptimizationRule
permits QueryOptimizer.PredicatePushDown, QueryOptimizer.IndexSelection, QueryOptimizer.ColumnPruning, QueryOptimizer.ConstantFolding, QueryOptimizer.LimitPushDown
Sealed interface for optimization rules.
Each rule applies a specific optimization transformation to a query plan.
-
Method Summary
-
Method Details
-
apply
QueryPlan apply(QueryPlan plan, @Nullable QueryOptimizer.TableStatistics stats, Map<String, MapIndex<?, ?>> availableIndexes) Applies this optimization rule to the given query plan.- Parameters:
plan- the original query planstats- table statistics (if available)availableIndexes- available indexes for the table- Returns:
- optimized query plan, or original if optimization cannot be applied
-
name
String name()Gets the name of this optimization rule.
-