aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authornavis.ryu <navis@apache.org>2015-06-10 18:19:12 -0700
committerReynold Xin <rxin@databricks.com>2015-06-10 18:19:24 -0700
commit5c05b5c0d25fc902bf95ed7b93ad7b5775631150 (patch)
tree9bd3802b3b0855feee9492b14ef3bb3c329a4547 /sql
parent59fc3f197247c6c8c40ea7479573af023c89d718 (diff)
downloadspark-5c05b5c0d25fc902bf95ed7b93ad7b5775631150.tar.gz
spark-5c05b5c0d25fc902bf95ed7b93ad7b5775631150.tar.bz2
spark-5c05b5c0d25fc902bf95ed7b93ad7b5775631150.zip
[SPARK-8285] [SQL] CombineSum should be calculated as unlimited decimal first
case cs CombineSum(expr) => val calcType = expr.dataType expr.dataType match { case DecimalType.Fixed(_, _) => DecimalType.Unlimited case _ => expr.dataType } calcType is always expr.dataType. credits are all belong to IntelliJ Author: navis.ryu <navis@apache.org> Closes #6736 from navis/SPARK-8285 and squashes the following commits: 20382c1 [navis.ryu] [SPARK-8285] [SQL] CombineSum should be calculated as unlimited decimal first (cherry picked from commit 6a47114bc297f0bce874e425feb1c24a5c26cef0) Signed-off-by: Reynold Xin <rxin@databricks.com>
Diffstat (limited to 'sql')
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/execution/GeneratedAggregate.scala4
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/GeneratedAggregate.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/GeneratedAggregate.scala
index 3e27c1bde2..af3791734d 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/execution/GeneratedAggregate.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/GeneratedAggregate.scala
@@ -118,7 +118,7 @@ case class GeneratedAggregate(
AggregateEvaluation(currentSum :: Nil, initialValue :: Nil, updateFunction :: Nil, result)
case cs @ CombineSum(expr) =>
- val calcType = expr.dataType
+ val calcType =
expr.dataType match {
case DecimalType.Fixed(_, _) =>
DecimalType.Unlimited
@@ -129,7 +129,7 @@ case class GeneratedAggregate(
val currentSum = AttributeReference("currentSum", calcType, nullable = true)()
val initialValue = Literal.create(null, calcType)
- // Coalasce avoids double calculation...
+ // Coalesce avoids double calculation...
// but really, common sub expression elimination would be better....
val zero = Cast(Literal(0), calcType)
// If we're evaluating UnscaledValue(x), we can do Count on x directly, since its