case class GpuDecimal128Sum(child: Expression, dt: DecimalType, failOnErrorOverride: Boolean, forceWindowSumToNotBeReplaced: Boolean) extends GpuDecimalSum with GpuReplaceWindowFunction with Product with Serializable
Sum aggregations for DECIMAL128.
The sum aggregation is performed by splitting the original 128-bit values into 32-bit "chunks" and summing those. The chunking accomplishes two things. First, it helps avoid cudf resorting to a much slower aggregation since currently DECIMAL128 sums are only implemented for sort-based aggregations. Second, chunking allows detection of overflows.
The chunked approach to sum aggregation works as follows. The 128-bit value is split into its four 32-bit chunks, with the most significant chunk being an INT32 and the remaining three chunks being UINT32. When these are sum aggregated, cudf will implicitly upscale the accumulated result to a 64-bit value. Since cudf only allows up to 2**31 rows to be aggregated at a time, the "extra" upper 32-bits of the upscaled 64-bit accumulation values will be enough to hold the worst-case "carry" bits from summing each 32-bit chunk.
After the cudf aggregation has completed, the four 64-bit chunks are reassembled into a 128-bit value. The lowest 32-bits of the least significant 64-bit chunk are used directly as the lowest 32-bits of the final value, and the remaining 32-bits are added to the next most significant 64-bit chunk. The lowest 32-bits of that chunk then become the next 32-bits of the 128-bit value and the remaining 32-bits are added to the next 64-bit chunk, and so on. Finally after the 128-bit value is constructed, the remaining "carry" bits of the most significant chunk after reconstruction are checked against the sign bit of the 128-bit result to see if there was an overflow.
- Alphabetic
- By Inheritance
- GpuDecimal128Sum
- GpuReplaceWindowFunction
- GpuDecimalSum
- GpuSum
- Serializable
- Serializable
- GpuRunningWindowFunction
- GpuAggregateWindowFunction
- GpuWindowFunction
- GpuBatchedRunningWindowWithFixer
- ImplicitCastInputTypes
- ExpectsInputTypes
- GpuAggregateFunction
- GpuUnevaluable
- ShimExpression
- GpuExpression
- Arm
- Expression
- TreeNode
- TreePatternBits
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
lazy val
aggBufferAttributes: Seq[AttributeReference]
This is the contract with the outside world.
This is the contract with the outside world. It describes what the output of postUpdate should look like, and what the input to preMerge looks like. It also describes what the output of postMerge must look like.
- Definition Classes
- GpuDecimalSum → GpuSum → GpuAggregateFunction
-
def
apply(number: Int): TreeNode[_]
- Definition Classes
- TreeNode
-
def
argString(maxFields: Int): String
- Definition Classes
- TreeNode
-
def
asCode: String
- Definition Classes
- TreeNode
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
lazy val
canonicalized: Expression
- Definition Classes
- GpuExpression → Expression
-
def
checkInputDataTypes(): TypeCheckResult
- Definition Classes
- GpuSum → ExpectsInputTypes → Expression
- val child: Expression
-
def
children: Seq[Expression]
- Definition Classes
- GpuSum → TreeNode
-
def
childrenResolved: Boolean
- Definition Classes
- Expression
-
def
clone(): Expression
- Definition Classes
- TreeNode → AnyRef
-
def
closeOnExcept[T <: AutoCloseable, V](r: Option[T])(block: (Option[T]) ⇒ V): V
Executes the provided code block, closing the resources only if an exception occurs
Executes the provided code block, closing the resources only if an exception occurs
- Definition Classes
- Arm
-
def
closeOnExcept[T <: AutoCloseable, V](r: ArrayBuffer[T])(block: (ArrayBuffer[T]) ⇒ V): V
Executes the provided code block, closing the resources only if an exception occurs
Executes the provided code block, closing the resources only if an exception occurs
- Definition Classes
- Arm
-
def
closeOnExcept[T <: AutoCloseable, V](r: Array[T])(block: (Array[T]) ⇒ V): V
Executes the provided code block, closing the resources only if an exception occurs
Executes the provided code block, closing the resources only if an exception occurs
- Definition Classes
- Arm
-
def
closeOnExcept[T <: AutoCloseable, V](r: Seq[T])(block: (Seq[T]) ⇒ V): V
Executes the provided code block, closing the resources only if an exception occurs
Executes the provided code block, closing the resources only if an exception occurs
- Definition Classes
- Arm
-
def
closeOnExcept[T <: AutoCloseable, V](r: T)(block: (T) ⇒ V): V
Executes the provided code block, closing the resource only if an exception occurs
Executes the provided code block, closing the resource only if an exception occurs
- Definition Classes
- Arm
-
def
collect[B](pf: PartialFunction[Expression, B]): Seq[B]
- Definition Classes
- TreeNode
-
def
collectFirst[B](pf: PartialFunction[Expression, B]): Option[B]
- Definition Classes
- TreeNode
-
def
collectLeaves(): Seq[Expression]
- Definition Classes
- TreeNode
-
final
def
columnarEval(batch: ColumnarBatch): Any
Returns the result of evaluating this expression on the entire
ColumnarBatch.Returns the result of evaluating this expression on the entire
ColumnarBatch. The result of calling this may be a singleGpuColumnVectoror a scalar value. Scalar values typically happen if they are a part of the expression i.e. col("a") + 100. In this case the 100 is a literal that Add would have to be able to handle.By convention any
GpuColumnVectorreturned by columnarEval is owned by the caller and will need to be closed by them. This can happen by putting it into aColumnarBatchand closing the batch or by closing the vector directly if it is a temporary value.- Definition Classes
- GpuUnevaluable → GpuExpression
-
final
def
containsAllPatterns(patterns: TreePattern*): Boolean
- Definition Classes
- TreePatternBits
-
final
def
containsAnyPattern(patterns: TreePattern*): Boolean
- Definition Classes
- TreePatternBits
-
lazy val
containsChild: Set[TreeNode[_]]
- Definition Classes
- TreeNode
-
final
def
containsPattern(t: TreePattern): Boolean
- Definition Classes
- TreePatternBits
- Annotations
- @inline()
-
def
convertToAst(numFirstTableColumns: Int): AstExpression
Build an equivalent representation of this expression in a cudf AST.
Build an equivalent representation of this expression in a cudf AST.
- numFirstTableColumns
number of columns in the leftmost input table. Spark places the columns of all inputs in a single sequence, while cudf AST uses an explicit table reference to make column indices unique. This parameter helps translate input column references from Spark's single sequence into cudf's separate sequences.
- returns
top node of the equivalent AST
- Definition Classes
- GpuExpression
-
def
copyTagsFrom(other: Expression): Unit
- Definition Classes
- TreeNode
-
def
dataType: DataType
- Definition Classes
- GpuSum → Expression
-
lazy val
deterministic: Boolean
- Definition Classes
- Expression
-
def
disableCoalesceUntilInput(): Boolean
Override this if your expression cannot allow combining of data from multiple files into a single batch before it operates on them.
Override this if your expression cannot allow combining of data from multiple files into a single batch before it operates on them. These are for things like getting the input file name. Which for spark is stored in a thread local variable which means we have to jump through some hoops to make this work.
- Definition Classes
- GpuExpression
-
final
def
doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode
- Definition Classes
- GpuExpression → Expression
- val dt: DecimalType
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
eval(input: InternalRow = null): Any
- Definition Classes
- GpuExpression → Expression
-
lazy val
evaluateExpression: Expression
This takes the output of
postMergecomputes the final result of the aggregation.This takes the output of
postMergecomputes the final result of the aggregation.- Definition Classes
- GpuDecimalSum → GpuSum → GpuAggregateFunction
- Note
evaluateExpressionis bound toaggBufferAttributes, so the references used inevaluateExpressionmust also be used inaggBufferAttributes.
- val failOnErrorOverride: Boolean
-
def
fastEquals(other: TreeNode[_]): Boolean
- Definition Classes
- TreeNode
-
def
filteredInputProjection(filter: Expression): Seq[Expression]
- Definition Classes
- GpuAggregateFunction
-
def
find(f: (Expression) ⇒ Boolean): Option[Expression]
- Definition Classes
- TreeNode
-
def
flatArguments: Iterator[Any]
- Attributes
- protected
- Definition Classes
- Expression
-
def
flatMap[A](f: (Expression) ⇒ TraversableOnce[A]): Seq[A]
- Definition Classes
- TreeNode
-
final
def
foldable: Boolean
An aggregate function is not foldable.
An aggregate function is not foldable.
- Definition Classes
- GpuAggregateFunction → Expression
- val forceWindowSumToNotBeReplaced: Boolean
-
def
foreach(f: (Expression) ⇒ Unit): Unit
- Definition Classes
- TreeNode
-
def
foreachUp(f: (Expression) ⇒ Unit): Unit
- Definition Classes
- TreeNode
-
def
freeOnExcept[T <: RapidsBuffer, V](r: T)(block: (T) ⇒ V): V
Executes the provided code block, freeing the RapidsBuffer only if an exception occurs
Executes the provided code block, freeing the RapidsBuffer only if an exception occurs
- Definition Classes
- Arm
-
def
genCode(ctx: CodegenContext): ExprCode
- Definition Classes
- Expression
-
def
generateTreeString(depth: Int, lastChildren: Seq[Boolean], append: (String) ⇒ Unit, verbose: Boolean, prefix: String, addSuffix: Boolean, maxFields: Int, printNodeId: Boolean, indent: Int): Unit
- Definition Classes
- TreeNode
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
getDefaultTreePatternBits: BitSet
- Attributes
- protected
- Definition Classes
- TreeNode
-
def
getTagValue[T](tag: TreeNodeTag[T]): Option[T]
- Definition Classes
- TreeNode
-
def
groupByScanAggregation(isRunningBatched: Boolean): Seq[AggAndReplace[GroupByScanAggregation]]
Get the aggregations to perform on the results of
groupByScanInputProjection.Get the aggregations to perform on the results of
groupByScanInputProjection. The aggregations will be zipped with the values to produce the output.- isRunningBatched
is this for a batched running window that will use a fixer or not?
- returns
the aggregations to perform as a group by scan.
- Definition Classes
- GpuSum → GpuRunningWindowFunction
-
def
groupByScanInputProjection(isRunningBatched: Boolean): Seq[Expression]
Get the input projections for a group by scan.
Get the input projections for a group by scan. This corresponds to a running window with a partition by clause. The partition keys will be used as the grouping keys.
- isRunningBatched
is this for a batched running window that will use a fixer or not?
- returns
the input expressions that will be aggregated using the result from
groupByScanAggregation
- Definition Classes
- GpuSum → GpuRunningWindowFunction
-
def
hasSideEffects: Boolean
Could evaluating this expression cause side-effects, such as throwing an exception?
Could evaluating this expression cause side-effects, such as throwing an exception?
- Definition Classes
- GpuExpression
-
def
hashCode(): Int
- Definition Classes
- TreeNode → AnyRef → Any
-
lazy val
initialValues: Seq[GpuLiteral]
These are values that spark calls initial because it uses them to initialize the aggregation buffer, and returns them in case of an empty aggregate when there are no expressions.
These are values that spark calls initial because it uses them to initialize the aggregation buffer, and returns them in case of an empty aggregate when there are no expressions.
In our case they are only used in a very specific case: the empty input reduction case. In this case we don't have input to reduce, but we do have reduction functions, so each reduction function's
initialValuesis invoked to populate a single row of output.- Definition Classes
- GpuDecimalSum → GpuSum → GpuAggregateFunction
-
def
innerChildren: Seq[TreeNode[_]]
- Definition Classes
- TreeNode
-
lazy val
inputProjection: Seq[Expression]
Using the child reference, define the shape of input batches sent to the update expressions
Using the child reference, define the shape of input batches sent to the update expressions
- Definition Classes
- GpuDecimal128Sum → GpuDecimalSum → GpuSum → GpuAggregateFunction
- Note
this can be thought of as "pre" update: as update consumes its output in order
-
def
inputTypes: Seq[AbstractDataType]
- Definition Classes
- GpuSum → ExpectsInputTypes
-
lazy val
isEmpty: AttributeReference
- Attributes
- protected
- Definition Classes
- GpuDecimalSum
-
def
isGroupByScanSupported: Boolean
Should a group by scan be run or not.
Should a group by scan be run or not. This should never return false unless this is also an instance of
GpuAggregateWindowFunctionso the window code can fall back to it for computation.- Definition Classes
- GpuRunningWindowFunction
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isRuleIneffective(ruleId: RuleId): Boolean
- Attributes
- protected
- Definition Classes
- TreeNode
-
def
isScanSupported: Boolean
Should a scan be run or not.
Should a scan be run or not. This should never return false unless this is also an instance of
GpuAggregateWindowFunctionso the window code can fall back to it for computation.- Definition Classes
- GpuRunningWindowFunction
-
def
jsonFields: List[JField]
- Attributes
- protected
- Definition Classes
- TreeNode
-
final
def
legacyWithNewChildren(newChildren: Seq[Expression]): Expression
- Attributes
- protected
- Definition Classes
- TreeNode
-
def
makeCopy(newArgs: Array[AnyRef]): Expression
- Definition Classes
- TreeNode
-
def
map[A](f: (Expression) ⇒ A): Seq[A]
- Definition Classes
- TreeNode
-
def
mapChildren(f: (Expression) ⇒ Expression): Expression
- Definition Classes
- TreeNode
-
def
mapProductIterator[B](f: (Any) ⇒ B)(implicit arg0: ClassTag[B]): Array[B]
- Attributes
- protected
- Definition Classes
- TreeNode
-
def
markRuleAsIneffective(ruleId: RuleId): Unit
- Attributes
- protected
- Definition Classes
- TreeNode
-
lazy val
mergeAggregates: Seq[CudfAggregate]
merge: second half of the aggregation.
merge: second half of the aggregation. Also used to merge multiple batches in the update or merge stages. These cuDF aggregates consume the output of
preMerge. The sequence ofCudfAggregatemust match the shape ofaggBufferAttributes, and care must be taken to ensure that each cuDF aggregate is able to work with the corresponding input (i.e. aggBufferAttributes[i] is the input to mergeAggregates[i]). If a transformation is required,preMergecan be used to mutate the batches before they arrive atmergeAggregates.- Definition Classes
- GpuDecimal128Sum → GpuDecimalSum → GpuSum → GpuAggregateFunction
-
lazy val
mergeIsEmpty: CudfAggregate
- Attributes
- protected
- Definition Classes
- GpuDecimalSum
-
lazy val
mergeIsOverflow: CudfAggregate
- Attributes
- protected
- Definition Classes
- GpuDecimalSum
-
lazy val
mergeSum: CudfAggregate
- Attributes
- protected
- Definition Classes
- GpuSum
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
newFixer(): BatchedRunningWindowFixer
Get a new class that can be used to fix up batched RunningWindowOperations.
Get a new class that can be used to fix up batched RunningWindowOperations.
- Definition Classes
- GpuSum → GpuBatchedRunningWindowWithFixer
-
def
nodeName: String
- Definition Classes
- TreeNode
-
val
nodePatterns: Seq[TreePattern]
- Attributes
- protected
- Definition Classes
- TreeNode
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
nullable: Boolean
- Definition Classes
- GpuSum → Expression
-
def
numberedTreeString: String
- Definition Classes
- TreeNode
-
val
origin: Origin
- Definition Classes
- TreeNode
-
def
otherCopyArgs: Seq[AnyRef]
- Attributes
- protected
- Definition Classes
- TreeNode
-
def
p(number: Int): Expression
- Definition Classes
- TreeNode
-
lazy val
postMerge: Seq[Expression]
- Definition Classes
- GpuDecimal128Sum → GpuDecimalSum → GpuAggregateFunction
-
final
lazy val
postMergeAttr: Seq[AttributeReference]
This is the last aggregation step, which optionally changes the result of the
mergeAggregate.This is the last aggregation step, which optionally changes the result of the
mergeAggregate. postMergeAttr: matches the order (and types) ofmergeAggregatespostMerge: binds topostMergeAttrand defines an expression that results in what Spark expects from the merge. We set this topostMergeAttrby default, for the pass through case (like inpostUpdate). GpuM2 is the exception, wherepostMergemutates the result of themergeAggregatesto output what Spark expects.- Definition Classes
- GpuAggregateFunction
-
lazy val
postUpdate: Seq[Expression]
- Definition Classes
- GpuDecimal128Sum → GpuDecimalSum → GpuAggregateFunction
-
final
lazy val
postUpdateAttr: Seq[AttributeReference]
This is the last step in the update phase.
This is the last step in the update phase. It can optionally modify the result of the cuDF update aggregates, or be a pass-through. postUpdateAttr: matches the order (and types) of
updateAggregatespostUpdate: binds topostUpdateAttrand defines an expression that results in what Spark expects from the update. By default this ispostUpdateAttr, as it should match the shape of the Spark agg buffer leaving cuDF, but in the M2 and Count cases we overwrite it, because the cuDF shape isn't what Spark expects.- Definition Classes
- GpuAggregateFunction
-
lazy val
preMerge: Seq[Expression]
This step is the first step into the merge phase.
This step is the first step into the merge phase. It can optionally modify the result of the postUpdate before it goes into the cuDF merge aggregation. preMerge: modify a partial batch to match the input required by a merge aggregate
This always binds to
aggBufferAttributesas that is the inbound schema for this aggregate from Spark. If it is set toaggBufferAttributesby default so the bind behaves like a pass through in most cases.- Definition Classes
- GpuDecimal128Sum → GpuDecimalSum → GpuAggregateFunction
-
def
prettyJson: String
- Definition Classes
- TreeNode
-
def
prettyName: String
- Definition Classes
- Expression
-
def
references: AttributeSet
- Definition Classes
- Expression
-
lazy val
resolved: Boolean
- Definition Classes
- Expression
-
def
scanAggregation(isRunningBatched: Boolean): Seq[AggAndReplace[ScanAggregation]]
Get the aggregations to perform on the results of
scanInputProjection.Get the aggregations to perform on the results of
scanInputProjection. The aggregations will be zipped with the values to produce the output.- isRunningBatched
is this for a batched running window that will use a fixer or not?
- returns
the aggregations to perform as a group by scan.
- Definition Classes
- GpuSum → GpuRunningWindowFunction
-
def
scanCombine(isRunningBatched: Boolean, cols: Seq[ColumnVector]): ColumnVector
Provides a way to combine the result of multiple aggregations into a final value.
Provides a way to combine the result of multiple aggregations into a final value. By default it requires that there is a single aggregation and works as just a pass through.
- isRunningBatched
is this for a batched running window that will use a fixer or not?
- cols
the columns to be combined
- returns
the result of combining these together.
- Definition Classes
- GpuDecimalSum → GpuSum → GpuRunningWindowFunction
-
def
scanInputProjection(isRunningBatched: Boolean): Seq[Expression]
Get the input projections for a scan.
Get the input projections for a scan. This corresponds to a running window without a partition by clause.
- isRunningBatched
is this for a batched running window that will use a fixer or not?
- returns
the input expressions that will be aggregated using the result from
scanAggregation
- Definition Classes
- GpuSum → GpuRunningWindowFunction
-
final
def
semanticEquals(other: Expression): Boolean
- Definition Classes
- Expression
-
def
semanticHash(): Int
- Definition Classes
- Expression
-
def
setTagValue[T](tag: TreeNodeTag[T], value: T): Unit
- Definition Classes
- TreeNode
-
def
shouldReplaceWindow(spec: GpuWindowSpecDefinition): Boolean
Return true if windowReplacement should be called to replace this GpuWindowFunction with something else.
Return true if windowReplacement should be called to replace this GpuWindowFunction with something else.
- Definition Classes
- GpuDecimal128Sum → GpuReplaceWindowFunction
-
def
simpleString(maxFields: Int): String
- Definition Classes
- Expression → TreeNode
-
def
simpleStringWithNodeId(): String
- Definition Classes
- Expression → TreeNode
-
def
sql(isDistinct: Boolean): String
- Definition Classes
- GpuAggregateFunction
-
def
sql: String
- Definition Classes
- Expression
-
def
stringArgs: Iterator[Any]
- Attributes
- protected
- Definition Classes
- TreeNode
-
lazy val
sum: AttributeReference
- Attributes
- protected
- Definition Classes
- GpuSum
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toAggString(isDistinct: Boolean): String
String representation used in explain plans.
String representation used in explain plans.
- Definition Classes
- GpuAggregateFunction
-
def
toJSON: String
- Definition Classes
- TreeNode
-
def
toString(): String
- Definition Classes
- Expression → TreeNode → AnyRef → Any
-
def
transform(rule: PartialFunction[Expression, Expression]): Expression
- Definition Classes
- TreeNode
-
def
transformDown(rule: PartialFunction[Expression, Expression]): Expression
- Definition Classes
- TreeNode
-
def
transformDownWithPruning(cond: (TreePatternBits) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[Expression, Expression]): Expression
- Definition Classes
- TreeNode
-
def
transformUp(rule: PartialFunction[Expression, Expression]): Expression
- Definition Classes
- TreeNode
-
def
transformUpWithBeforeAndAfterRuleOnChildren(cond: (Expression) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[(Expression, Expression), Expression]): Expression
- Definition Classes
- TreeNode
-
def
transformUpWithPruning(cond: (TreePatternBits) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[Expression, Expression]): Expression
- Definition Classes
- TreeNode
-
def
transformWithPruning(cond: (TreePatternBits) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[Expression, Expression]): Expression
- Definition Classes
- TreeNode
-
lazy val
treePatternBits: BitSet
- Definition Classes
- TreeNode → TreePatternBits
-
def
treeString(append: (String) ⇒ Unit, verbose: Boolean, addSuffix: Boolean, maxFields: Int, printOperatorId: Boolean): Unit
- Definition Classes
- TreeNode
-
final
def
treeString(verbose: Boolean, addSuffix: Boolean, maxFields: Int, printOperatorId: Boolean): String
- Definition Classes
- TreeNode
-
final
def
treeString: String
- Definition Classes
- TreeNode
-
def
unsetTagValue[T](tag: TreeNodeTag[T]): Unit
- Definition Classes
- TreeNode
-
lazy val
updateAggregates: Seq[CudfAggregate]
update: first half of the aggregation The sequence of
CudfAggregatemust match the shape ofinputProjections, and care must be taken to ensure that each cuDF aggregate is able to work with the corresponding inputProjection (i.e.update: first half of the aggregation The sequence of
CudfAggregatemust match the shape ofinputProjections, and care must be taken to ensure that each cuDF aggregate is able to work with the corresponding inputProjection (i.e. inputProjection[i] is the input to updateAggregates[i]).- Definition Classes
- GpuDecimal128Sum → GpuDecimalSum → GpuSum → GpuAggregateFunction
-
lazy val
updateIsEmpty: CudfAggregate
- Attributes
- protected
- Definition Classes
- GpuDecimalSum
-
lazy val
updateSum: CudfAggregate
- Attributes
- protected
- Definition Classes
- GpuSum
-
final
def
verboseString(maxFields: Int): String
- Definition Classes
- Expression → TreeNode
-
def
verboseStringWithSuffix(maxFields: Int): String
- Definition Classes
- TreeNode
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
windowAggregation(inputs: Seq[(ColumnVector, Int)]): RollingAggregationOnColumn
Create the aggregation operation to perform for Windowing.
Create the aggregation operation to perform for Windowing. The input to this method is a sequence of (index, ColumnVector) that corresponds one to one with what was returned by windowInputProjection. The index is the index into the Table for the corresponding ColumnVector. Some aggregations need extra values.
- Definition Classes
- GpuSum → GpuAggregateWindowFunction
-
lazy val
windowInputProjection: Seq[Expression]
Using child references, define the shape of the vectors sent to the window operations
Using child references, define the shape of the vectors sent to the window operations
- Definition Classes
- GpuSum → GpuAggregateWindowFunction
-
def
windowOutput(result: ColumnVector): ColumnVector
Do a final pass over the window aggregation output.
Do a final pass over the window aggregation output. This lets us cast the result to a desired type or check for overflow. This is not used for GpuRunningWindowFunction. There you can use
scanCombine.- Definition Classes
- GpuDecimalSum → GpuSum → GpuAggregateWindowFunction
-
def
windowReplacement(spec: GpuWindowSpecDefinition): Expression
Return a new single expression that can replace the existing aggregation in window calculations.
Return a new single expression that can replace the existing aggregation in window calculations. Please note that this requires that there are no nested window operations. For example you cannot do a SUM of AVERAGES with this currently. That support may be added in the future.
- Definition Classes
- GpuDecimal128Sum → GpuReplaceWindowFunction
-
final
def
withNewChildren(newChildren: Seq[Expression]): Expression
- Definition Classes
- TreeNode
-
def
withNewChildrenInternal(newChildren: IndexedSeq[Expression]): Expression
- Definition Classes
- ShimExpression → TreeNode
-
def
withResource[T <: AutoCloseable, V](h: CloseableHolder[T])(block: (CloseableHolder[T]) ⇒ V): V
Executes the provided code block and then closes the resource
Executes the provided code block and then closes the resource
- Definition Classes
- Arm
-
def
withResource[T <: AutoCloseable, V](r: ArrayBuffer[T])(block: (ArrayBuffer[T]) ⇒ V): V
Executes the provided code block and then closes the array buffer of resources
Executes the provided code block and then closes the array buffer of resources
- Definition Classes
- Arm
-
def
withResource[T <: AutoCloseable, V](r: Array[T])(block: (Array[T]) ⇒ V): V
Executes the provided code block and then closes the array of resources
Executes the provided code block and then closes the array of resources
- Definition Classes
- Arm
-
def
withResource[T <: AutoCloseable, V](r: Seq[T])(block: (Seq[T]) ⇒ V): V
Executes the provided code block and then closes the sequence of resources
Executes the provided code block and then closes the sequence of resources
- Definition Classes
- Arm
-
def
withResource[T <: AutoCloseable, V](r: Option[T])(block: (Option[T]) ⇒ V): V
Executes the provided code block and then closes the Option[resource]
Executes the provided code block and then closes the Option[resource]
- Definition Classes
- Arm
-
def
withResource[T <: AutoCloseable, V](r: T)(block: (T) ⇒ V): V
Executes the provided code block and then closes the resource
Executes the provided code block and then closes the resource
- Definition Classes
- Arm
-
def
withResourceIfAllowed[T, V](r: T)(block: (T) ⇒ V): V
Executes the provided code block and then closes the value if it is AutoCloseable
Executes the provided code block and then closes the value if it is AutoCloseable
- Definition Classes
- Arm