Class WindowRankProcessor

  • All Implemented Interfaces:
    Processor

    public class WindowRankProcessor
    extends WindowRankingProcessorBase
    This Processor assumes that data has already been sorted for it. It does not re-sort the data and if it is given data that is not in the correct sorted order, its operation is undefined.
    • Constructor Detail

      • WindowRankProcessor

        public WindowRankProcessor​(List<String> groupingCols,
                                   String outputColumn,
                                   boolean asPercent)
    • Method Detail

      • isAsPercent

        public boolean isAsPercent()
      • process

        public RowsAndColumns process​(RowsAndColumns incomingPartition)
        Description copied from interface: Processor
        Applies the logic of the processor to a RowsAndColumns object
        Parameters:
        incomingPartition - the incoming RowsAndColumns object
        Returns:
        the transformed RowsAndColumns object
      • validateEquivalent

        public boolean validateEquivalent​(Processor otherProcessor)
        Description copied from interface: Processor
        Validates 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:
        validateEquivalent in interface Processor
        Overrides:
        validateEquivalent in class WindowRankingProcessorBase
        Parameters:
        otherProcessor - the processor to test equivalence of
        Returns:
        boolean identifying if these processors should be considered equivalent to each other.