Record Class FilterPushdownSupport.PushdownResult

java.lang.Object
java.lang.Record
org.elasticsearch.xpack.esql.datasources.spi.FilterPushdownSupport.PushdownResult
Record Components:
pushedFilter - source-specific filter object (opaque to core), or null if nothing was pushed
pushedExpressions - the original ESQL expressions that were successfully translated into the pushed filter. Carried through the pipeline so per-file filter adaptation can re-translate them for files with different schemas (UNION_BY_NAME).
remainder - expressions that could not be pushed and must remain in FilterExec
Enclosing interface:
FilterPushdownSupport

public static record FilterPushdownSupport.PushdownResult(Object pushedFilter, List<Expression> pushedExpressions, List<Expression> remainder) extends Record
Result of attempting to push filters to a data source.
  • Constructor Details

    • PushdownResult

      public PushdownResult(Object pushedFilter, List<Expression> remainder)
      Backward-compatible constructor for implementations that do not track pushed expressions.
    • PushdownResult

      public PushdownResult(Object pushedFilter, List<Expression> pushedExpressions, List<Expression> remainder)
      Creates an instance of a PushdownResult record class.
      Parameters:
      pushedFilter - the value for the pushedFilter record component
      pushedExpressions - the value for the pushedExpressions record component
      remainder - the value for the remainder record component
  • Method Details

    • none

      Creates a result indicating no filters could be pushed.
      Parameters:
      all - the original filter expressions
      Returns:
      a PushdownResult with null pushed filter and all expressions as remainder
    • all

      public static FilterPushdownSupport.PushdownResult all(Object pushedFilter)
      Creates a result indicating all filters were pushed.
      Parameters:
      pushedFilter - the source-specific filter object
      Returns:
      a PushdownResult with the pushed filter and empty remainder
    • hasPushedFilter

      public boolean hasPushedFilter()
      Returns true if any filters were successfully pushed.
    • hasRemainder

      public boolean hasRemainder()
      Returns true if there are remaining filters that couldn't be pushed.
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • pushedFilter

      public Object pushedFilter()
      Returns the value of the pushedFilter record component.
      Returns:
      the value of the pushedFilter record component
    • pushedExpressions

      public List<Expression> pushedExpressions()
      Returns the value of the pushedExpressions record component.
      Returns:
      the value of the pushedExpressions record component
    • remainder

      public List<Expression> remainder()
      Returns the value of the remainder record component.
      Returns:
      the value of the remainder record component