Class WinAggResultContextImpl
java.lang.Object
org.apache.calcite.adapter.enumerable.NestedBlockBuilderImpl
org.apache.calcite.adapter.enumerable.impl.AggResetContextImpl
org.apache.calcite.adapter.enumerable.impl.AggResultContextImpl
org.apache.calcite.adapter.enumerable.impl.WinAggResultContextImpl
- All Implemented Interfaces:
AggResetContext
,AggResultContext
,NestedBlockBuilder
,WinAggFrameContext
,WinAggFrameResultContext
,WinAggResultContext
- Direct Known Subclasses:
WinAggAddContextImpl
public abstract class WinAggResultContextImpl
extends AggResultContextImpl
implements WinAggResultContext
Implementation of
WinAggResultContext
.-
Constructor Summary
ModifierConstructorDescriptionprotected
WinAggResultContextImpl
(BlockBuilder block, List<Expression> accumulator, com.google.common.base.Function<BlockBuilder, WinAggFrameResultContext> frameContextBuilder) Deprecated.protected
WinAggResultContextImpl
(BlockBuilder block, List<Expression> accumulator, Function<BlockBuilder, WinAggFrameResultContext> frameContextBuilder) Creates window aggregate result context. -
Method Summary
Modifier and TypeMethodDescriptionfinal List<Expression>
arguments
(Expression rowIndex) Returns Linq4j form of arguments.compareRows
(Expression a, Expression b) Compares two rows given by absolute positions according to the order collation of the current window.computeIndex
(Expression offset, WinAggImplementor.SeekType seekType) Converts absolute index position of the given relative position.endIndex()
Returns the index of the very last row in partition.Returns the number of rows in the current frame (subject to framing clause).Returns the number of rows in the current partition (as determined by PARTITION BY clause).hasRows()
Returns the boolean expression that tells if the partition has rows.index()
Returns the index of the current row in the partition.rowInFrame
(Expression rowIndex) Returns boolean the expression that checks if the given index is in the frame bounds.rowInPartition
(Expression rowIndex) Returns boolean the expression that checks if the given index is in the partition bounds.rowTranslator
(Expression rowIndex) Returns row translator for given absolute row position.Returns the index of the very first row in partition.Methods inherited from class org.apache.calcite.adapter.enumerable.impl.AggResultContextImpl
call, key, keyField, resultTranslator
Methods inherited from class org.apache.calcite.adapter.enumerable.impl.AggResetContextImpl
accumulator
Methods inherited from class org.apache.calcite.adapter.enumerable.NestedBlockBuilderImpl
currentBlock, exitBlock, nestBlock, nestBlock
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.calcite.adapter.enumerable.AggResetContext
accumulator
Methods inherited from interface org.apache.calcite.adapter.enumerable.AggResultContext
call, key, keyField, resultTranslator
Methods inherited from interface org.apache.calcite.adapter.enumerable.NestedBlockBuilder
currentBlock, exitBlock, nestBlock, nestBlock
Methods inherited from interface org.apache.calcite.adapter.enumerable.WinAggResultContext
rexArguments
-
Constructor Details
-
WinAggResultContextImpl
protected WinAggResultContextImpl(BlockBuilder block, List<Expression> accumulator, Function<BlockBuilder, WinAggFrameResultContext> frameContextBuilder) Creates window aggregate result context.- Parameters:
block
- code block that will contain the added initializationaccumulator
- accumulator variables that store the intermediate aggregate state
-
WinAggResultContextImpl
@Deprecated protected WinAggResultContextImpl(BlockBuilder block, List<Expression> accumulator, com.google.common.base.Function<BlockBuilder, WinAggFrameResultContext> frameContextBuilder) Deprecated.
-
-
Method Details
-
arguments
Description copied from interface:WinAggResultContext
Returns Linq4j form of arguments. The resulting value is equivalent torowTranslator().translateList(rexArguments())
. This is handy if you need just operate on argument.- Specified by:
arguments
in interfaceWinAggResultContext
- Parameters:
rowIndex
- index of the requested row. The index must be in range of partition's startIndex and endIndex.- Returns:
- Linq4j form of arguments of the particular row
-
computeIndex
Description copied from interface:WinAggFrameResultContext
Converts absolute index position of the given relative position.- Specified by:
computeIndex
in interfaceWinAggFrameResultContext
- Parameters:
offset
- offset of the requested rowseekType
- the type of offset (start of window, end of window, etc)- Returns:
- absolute position of the requested row
-
rowInFrame
Description copied from interface:WinAggFrameResultContext
Returns boolean the expression that checks if the given index is in the frame bounds.- Specified by:
rowInFrame
in interfaceWinAggFrameResultContext
- Parameters:
rowIndex
- index if the row to check- Returns:
- expression that validates frame bounds for the given index
-
rowInPartition
Description copied from interface:WinAggFrameResultContext
Returns boolean the expression that checks if the given index is in the partition bounds.- Specified by:
rowInPartition
in interfaceWinAggFrameResultContext
- Parameters:
rowIndex
- index if the row to check- Returns:
- expression that validates partition bounds for the given index
-
rowTranslator
Description copied from interface:WinAggFrameResultContext
Returns row translator for given absolute row position.- Specified by:
rowTranslator
in interfaceWinAggFrameResultContext
- Parameters:
rowIndex
- absolute index of the row.- Returns:
- translator for the requested row
-
compareRows
Description copied from interface:WinAggFrameResultContext
Compares two rows given by absolute positions according to the order collation of the current window.- Specified by:
compareRows
in interfaceWinAggFrameResultContext
- Parameters:
a
- absolute index of the first rowb
- absolute index of the second row- Returns:
- result of comparison as as in
Comparable.compareTo(T)
-
index
Description copied from interface:WinAggFrameContext
Returns the index of the current row in the partition. In other words, it is close to ~ROWS BETWEEN CURRENT ROW. Note to useWinAggFrameContext.startIndex()
when you need zero-based row position.- Specified by:
index
in interfaceWinAggFrameContext
- Returns:
- the index of the very first row in partition
-
startIndex
Description copied from interface:WinAggFrameContext
Returns the index of the very first row in partition.- Specified by:
startIndex
in interfaceWinAggFrameContext
- Returns:
- index of the very first row in partition
-
endIndex
Description copied from interface:WinAggFrameContext
Returns the index of the very last row in partition.- Specified by:
endIndex
in interfaceWinAggFrameContext
- Returns:
- index of the very last row in partition
-
hasRows
Description copied from interface:WinAggFrameContext
Returns the boolean expression that tells if the partition has rows. The partition might lack rows in cases like ROWS BETWEEN 1000 PRECEDING AND 900 PRECEDING.- Specified by:
hasRows
in interfaceWinAggFrameContext
- Returns:
- boolean expression that tells if the partition has rows
-
getFrameRowCount
Description copied from interface:WinAggFrameContext
Returns the number of rows in the current frame (subject to framing clause).- Specified by:
getFrameRowCount
in interfaceWinAggFrameContext
- Returns:
- number of rows in the current partition or 0 if the partition is empty
-
getPartitionRowCount
Description copied from interface:WinAggFrameContext
Returns the number of rows in the current partition (as determined by PARTITION BY clause).- Specified by:
getPartitionRowCount
in interfaceWinAggFrameContext
- Returns:
- number of rows in the current partition or 0 if the partition is empty
-