Class FlattenNestedAndPredicateRule


  • @API(EXPERIMENTAL)
    public class FlattenNestedAndPredicateRule
    extends PlannerRule<LogicalFilterExpression>
    A simple rule that performs some basic Boolean normalization by flattening a nested AndPredicate into a single, wider AND. This rule only attempts to remove a single AndComponent; it may be repeated if necessary. For example, it would transform: Query.and( Query.and(Query.field("a").equals("foo"), Query.field("b").equals("bar")), Query.field(c").equals("baz"), Query.and(Query.field("d").equals("food"), Query.field("e").equals("bare")) to Query.and( Query.field("a").equals("foo"), Query.field("b").equals("bar"), Query.field("c").equals("baz")), Query.and(Query.field("d").equals("food"), Query.field("e").equals("bare"))