Class SelectionSplitPass
java.lang.Object
com.darkcollective.relix.optimizer.internal.SelectionSplitPass
Optimization pass that decomposes every conjunctive selection predicate into
two stacked selections, enabling each factor to be pushed independently
(
SEL-001).
Rule: σ(A ∧ B)(R) → σ(A)(σ(B)(R)).
The rule is applied recursively so deeply nested conjunctions are fully
split in a single pass:
σ(A ∧ B ∧ C)(R) → σ(A)(σ(B)(σ(C)(R))).
This pass should run before the pushdown pass so that individual conjuncts are independently moveable.
This class is package-private and stateless; call
apply(RelNode, String, SchemaAnnotations, OptimizationContext) as a
static method.
-
Method Summary