Class Rule<E extends T,T extends Node<T>>

java.lang.Object
org.elasticsearch.xpack.esql.rule.Rule<E,T>
Direct Known Subclasses:
AnalyzerRules.AnalyzerRule, InferIsNotNull, OptimizerRules.OptimizerRule, ParameterizedRule, PhysicalOptimizerRules.OptimizerRule, ProjectAwayColumns, PropgateUnmappedFields, PruneColumns, ReplaceAliasingEvalWithProject, SetAsOptimized

public abstract class Rule<E extends T,T extends Node<T>> extends Object
Rules that apply transformation to a tree. In addition, performs type filtering so that a rule that the rule implementation doesn't have to manually filter.

Rules could could be built as lambdas but most rules are much larger, so we keep them as full-blown subclasses.

  • Field Details

    • log

      protected org.elasticsearch.logging.Logger log
  • Constructor Details

    • Rule

      protected Rule()
    • Rule

      protected Rule(String name)
  • Method Details

    • typeToken

      public Class<E> typeToken()
    • name

      public String name()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • apply

      public abstract T apply(T t)