Github user cloud-fan commented on a diff in the pull request:

    https://github.com/apache/spark/pull/13367#discussion_r64976074
  
    --- 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 --
    
    why don't final and complete need prefix?


---
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 infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to