Github user rxin commented on a diff in the pull request:
https://github.com/apache/spark/pull/13367#discussion_r64976454
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/aggregate/interfaces.scala
---
@@ -24,38 +24,49 @@ import
org.apache.spark.sql.catalyst.expressions.codegen.CodegenFallback
import org.apache.spark.sql.types._
/** The mode of an [[AggregateFunction]]. */
-private[sql] sealed trait AggregateMode
+private[sql] sealed trait AggregateMode {
+ /** Prefix used in explain to indicate the aggregate mode. */
+ def prefix: String
+}
/**
* An [[AggregateFunction]] with [[Partial]] mode is used for partial
aggregation.
* This function updates the given aggregation buffer with the original
input of this
* function. When it has processed all input rows, the aggregation buffer
is returned.
*/
-private[sql] case object Partial extends AggregateMode
+private[sql] case object Partial extends AggregateMode {
+ override def prefix: String = "partial_"
+}
/**
* An [[AggregateFunction]] with [[PartialMerge]] mode is used to merge
aggregation buffers
* containing intermediate results for this function.
* This function updates the given aggregation buffer by merging multiple
aggregation buffers.
* When it has processed all input rows, the aggregation buffer is
returned.
*/
-private[sql] case object PartialMerge extends AggregateMode
+private[sql] case object PartialMerge extends AggregateMode {
+ override def prefix: String = "merge_"
+}
/**
* An [[AggregateFunction]] with [[Final]] mode is used to merge
aggregation buffers
* containing intermediate results for this function and then generate
final result.
* This function updates the given aggregation buffer by merging multiple
aggregation buffers.
* When it has processed all input rows, the final result of this function
is returned.
*/
-private[sql] case object Final extends AggregateMode
+private[sql] case object Final extends AggregateMode {
+ override def prefix: String = ""
+}
/**
* An [[AggregateFunction]] with [[Complete]] mode is used to evaluate
this function directly
* from original input rows without any partial aggregation.
* This function updates the given aggregation buffer with the original
input of this
* function. When it has processed all input rows, the final result of
this function is returned.
*/
-private[sql] case object Complete extends AggregateMode
+private[sql] case object Complete extends AggregateMode {
--- End diff --
because they are final and complete?
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]