Class WinAggResetContextImpl
java.lang.Object
org.apache.calcite.adapter.enumerable.NestedBlockBuilderImpl
org.apache.calcite.adapter.enumerable.impl.AggResetContextImpl
org.apache.calcite.adapter.enumerable.impl.WinAggResetContextImpl
- All Implemented Interfaces:
AggResetContext,NestedBlockBuilder,WinAggFrameContext,WinAggResetContext
Implementation of
WinAggResetContext.-
Constructor Summary
ConstructorsConstructorDescriptionWinAggResetContextImpl(BlockBuilder block, List<Expression> accumulator, Expression index, Expression startIndex, Expression endIndex, Expression hasRows, Expression frameRowCount, Expression partitionRowCount) Creates window aggregate reset context. -
Method Summary
Modifier and TypeMethodDescriptionendIndex()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.Returns the index of the very first row in partition.Methods inherited from class org.apache.calcite.adapter.enumerable.impl.AggResetContextImpl
accumulator, callMethods inherited from class org.apache.calcite.adapter.enumerable.NestedBlockBuilderImpl
currentBlock, exitBlock, nestBlock, nestBlockMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.calcite.adapter.enumerable.AggResetContext
accumulatorMethods inherited from interface org.apache.calcite.adapter.enumerable.NestedBlockBuilder
currentBlock, exitBlock, nestBlock, nestBlock
-
Constructor Details
-
WinAggResetContextImpl
public WinAggResetContextImpl(BlockBuilder block, List<Expression> accumulator, Expression index, Expression startIndex, Expression endIndex, Expression hasRows, Expression frameRowCount, Expression partitionRowCount) Creates window aggregate reset context.- Parameters:
block- code block that will contain the added initializationaccumulator- accumulator variables that store the intermediate aggregate stateindex- index of the current row in the partitionstartIndex- index of the very first row in partitionendIndex- index of the very last row in partitionhasRows- boolean expression that tells if the partition has rowsframeRowCount- number of rows in the current framepartitionRowCount- number of rows in the current partition
-
-
Method Details
-
index
Description copied from interface:WinAggFrameContextReturns 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:
indexin interfaceWinAggFrameContext- Returns:
- the index of the very first row in partition
-
startIndex
Description copied from interface:WinAggFrameContextReturns the index of the very first row in partition.- Specified by:
startIndexin interfaceWinAggFrameContext- Returns:
- index of the very first row in partition
-
endIndex
Description copied from interface:WinAggFrameContextReturns the index of the very last row in partition.- Specified by:
endIndexin interfaceWinAggFrameContext- Returns:
- index of the very last row in partition
-
hasRows
Description copied from interface:WinAggFrameContextReturns 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:
hasRowsin interfaceWinAggFrameContext- Returns:
- boolean expression that tells if the partition has rows
-
getFrameRowCount
Description copied from interface:WinAggFrameContextReturns the number of rows in the current frame (subject to framing clause).- Specified by:
getFrameRowCountin interfaceWinAggFrameContext- Returns:
- number of rows in the current partition or 0 if the partition is empty
-
getPartitionRowCount
Description copied from interface:WinAggFrameContextReturns the number of rows in the current partition (as determined by PARTITION BY clause).- Specified by:
getPartitionRowCountin interfaceWinAggFrameContext- Returns:
- number of rows in the current partition or 0 if the partition is empty
-