Class RegexExtract

All Implemented Interfaces:
NamedWriteable, Writeable, PostAnalysisVerificationAware, Resolvable, GeneratingPlan<RegexExtract>, SortAgnostic
Direct Known Subclasses:
Dissect, Grok

public abstract class RegexExtract extends UnaryPlan implements GeneratingPlan<RegexExtract>, PostAnalysisVerificationAware, SortAgnostic
  • Field Details

  • Constructor Details

  • Method Details

    • expressionsResolved

      public boolean expressionsResolved()
      Specified by:
      expressionsResolved in class LogicalPlan
    • output

      public List<Attribute> output()
      Description copied from class: QueryPlan
      The ordered list of attributes (i.e. columns) this plan produces when executed. Must be called only on resolved plans, otherwise may throw an exception or return wrong results.
      Overrides:
      output in class UnaryPlan
    • computeReferences

      protected AttributeSet computeReferences()
      Description copied from class: QueryPlan
      This very likely needs to be overridden for QueryPlan.references() to be correct when inheriting. This can be called on unresolved plans and therefore must not rely on calls to QueryPlan.output().
      Overrides:
      computeReferences in class QueryPlan<LogicalPlan>
    • input

      public Expression input()
    • extractedFields

      public List<Attribute> extractedFields()
      Upon parsing, these are named according to the Dissect or Grok pattern, but can be renamed without changing the pattern.
    • generatedAttributes

      public List<Attribute> generatedAttributes()
      Specified by:
      generatedAttributes in interface GeneratingPlan<RegexExtract>
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class UnaryPlan
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class UnaryPlan
    • postAnalysisVerification

      public void postAnalysisVerification(Failures failures)
      Description copied from interface: PostAnalysisVerificationAware
      Allows the implementer to validate itself. This usually involves checking its internal setup, which often means checking the parameters it received on construction: their data or syntactic type, class, their count, expressions' structure etc. The discovered failures are added to the given Failures object.

      It is often more useful to perform the checks as extended as it makes sense, over stopping at the first failure. This will allow the author to progress faster to a correct query.

      Example: the Filter class, which models the WHERE command, checks that the expression it filters on - condition - is of a Boolean or NULL type:

           
           @Override
           void postAnalysisVerification(Failures failures) {
                if (condition.dataType() != NULL && condition.dataType() != BOOLEAN) {
                    failures.add(fail(condition, "Condition expression needs to be boolean, found [{}]", condition.dataType()));
                }
           }
           
           
      Specified by:
      postAnalysisVerification in interface PostAnalysisVerificationAware
      Parameters:
      failures - the object to add failures to.