java.lang.Object
com.darkcollective.relix.optimizer.internal.SelectionSplitPass

public final class SelectionSplitPass extends Object
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.