Class AbstractPartitioningOperatorFactory

java.lang.Object
org.apache.druid.query.operator.AbstractPartitioningOperatorFactory
All Implemented Interfaces:
OperatorFactory
Direct Known Subclasses:
GlueingPartitioningOperatorFactory, NaivePartitioningOperatorFactory

public abstract class AbstractPartitioningOperatorFactory extends Object implements OperatorFactory
  • Field Details

    • partitionColumns

      protected final List<String> partitionColumns
  • Constructor Details

    • AbstractPartitioningOperatorFactory

      public AbstractPartitioningOperatorFactory(List<String> partitionColumns)
  • Method Details

    • getPartitionColumns

      public List<String> getPartitionColumns()
    • wrap

      public abstract Operator wrap(Operator op)
      Description copied from interface: OperatorFactory
      Builds an operator according to the definition of the OperatorFactory and wraps it around the operator passed in to this function.
      Specified by:
      wrap in interface OperatorFactory
      Parameters:
      op - the Operator to wrap
      Returns:
      the wrapped Operator
    • validateEquivalent

      public boolean validateEquivalent(OperatorFactory other)
      Description copied from interface: OperatorFactory
      Validates the equivalence of Operators. This is similar to @{code .equals} but is its own method so that it can ignore certain fields that would be important for a true equality check. Namely, two Operators defined the same way but with different output names can be considered equivalent even though they are not equal.

      This primarily exists to simplify tests, where this equivalence can be used to validate that the Operators created by the SQL planner are actually equivalent to what we expect without needing to be overly dependent on how the planner names output columns

      Specified by:
      validateEquivalent in interface OperatorFactory
      Parameters:
      other - the processor to test equivalence of
      Returns:
      boolean identifying if these processors should be considered equivalent to each other.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object