Class WindowValueProcessorBase
java.lang.Object
org.apache.druid.query.operator.window.value.WindowValueProcessorBase
- All Implemented Interfaces:
Processor
- Direct Known Subclasses:
WindowFirstProcessor,WindowLastProcessor,WindowOffsetProcessor
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Stringprotected booleanprocessInternal(RowsAndColumns input, Function<Column, Column> fn) This implements the common logic between the various value processors.toString()booleanvalidateEquivalent(Processor otherProcessor) Validates the equivalence of the Processors.
-
Constructor Details
-
WindowValueProcessorBase
-
-
Method Details
-
getInputColumn
-
getOutputColumn
-
processInternal
This implements the common logic between the various value processors. It looks like it could be static, but if it is static then the lambda becomes polymorphic. We keep it as a member method of the base class so taht the JVM can inline it and specialize the lambda- Parameters:
input- incoming RowsAndColumns, as in Processor.processfn- function that converts the input column into the output column- Returns:
- RowsAndColumns, as in Processor.process
-
validateEquivalent
Description copied from interface:ProcessorValidates the equivalence of the Processors. 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 Processors 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 Processors created by the SQL planner are actually equivalent to what we expect without needing to be overly dependent on how the planner names the output columns
- Specified by:
validateEquivalentin interfaceProcessor- Parameters:
otherProcessor- the processor to test equivalence of- Returns:
- boolean identifying if these processors should be considered equivalent to each other.
-
intervalValidation
-
toString
-
internalToString
-
getOutputColumnNames
- Specified by:
getOutputColumnNamesin interfaceProcessor- Returns:
- List of output column names for the Processor.
-