You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by ge...@apache.org on 2022/08/10 05:35:43 UTC

[spark] branch master updated: [SPARK-40016][SQL] Remove unnecessary TryEval in the implementation of try_sum()

This is an automated email from the ASF dual-hosted git repository.

gengliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new 788e157ab55 [SPARK-40016][SQL] Remove unnecessary TryEval in the implementation of try_sum()
788e157ab55 is described below

commit 788e157ab5595baed8c6a8ba898ae4018c9e7d57
Author: Gengliang Wang <ge...@apache.org>
AuthorDate: Tue Aug 9 22:35:24 2022 -0700

    [SPARK-40016][SQL] Remove unnecessary TryEval in the implementation of try_sum()
    
    ### What changes were proposed in this pull request?
    
    Remove unnecessary TryEval in the implementation of try_sum()
    
    ### Why are the changes needed?
    
    For simplicity.
    
    ### Does this PR introduce _any_ user-facing change?
    
    No
    
    ### How was this patch tested?
    
    Existing unit test
    
    Closes #37446 from gengliangwang/updateTrySum.
    
    Authored-by: Gengliang Wang <ge...@apache.org>
    Signed-off-by: Gengliang Wang <ge...@apache.org>
---
 .../spark/sql/catalyst/expressions/aggregate/Sum.scala       | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/aggregate/Sum.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/aggregate/Sum.scala
index e8492c0e5dc..869a27c6161 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/aggregate/Sum.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/aggregate/Sum.scala
@@ -249,17 +249,15 @@ case class TrySum(child: Expression) extends SumBase(child) {
 
   override lazy val mergeExpressions: Seq[Expression] =
     if (useAnsiAdd) {
-      getMergeExpressions.map(TryEval)
+      val expressions = getMergeExpressions
+      // If the length of getMergeExpressions is larger than 1, the tail expressions are for
+      // tracking whether the input is empty, which doesn't need `TryEval` execution.
+      Seq(TryEval(expressions.head)) ++ expressions.tail
     } else {
       getMergeExpressions
     }
 
-  override lazy val evaluateExpression: Expression =
-    if (useAnsiAdd) {
-      TryEval(getEvaluateExpression())
-    } else {
-      getEvaluateExpression()
-    }
+  override lazy val evaluateExpression: Expression = getEvaluateExpression()
 
   override protected def withNewChildInternal(newChild: Expression): Expression =
     copy(child = newChild)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org