From 4928330c928e988f71002a5f5f17ae9283232e2a Mon Sep 17 00:00:00 2001 From: Marco Gaido Date: Sat, 29 Jun 2019 21:19:05 +0200 Subject: [PATCH] fix ut failures --- .../sql/catalyst/expressions/decimalExpressions.scala | 1 - .../main/scala/org/apache/spark/sql/types/Decimal.scala | 7 ++++--- .../sql/catalyst/expressions/DecimalExpressionSuite.scala | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/decimalExpressions.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/decimalExpressions.scala index 18f3d796a7854..b5b712cda8ea3 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/decimalExpressions.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/decimalExpressions.scala @@ -61,7 +61,6 @@ case class MakeDecimal(child: Expression, precision: Int, scale: Int) extends Un } else { result.set(longInput, precision, scale) } - result } override def doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode = { diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/types/Decimal.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/types/Decimal.scala index 819f18c11b78b..1bf322af21799 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/types/Decimal.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/types/Decimal.scala @@ -111,9 +111,10 @@ final class Decimal extends Ordered[Decimal] with Serializable { */ def set(decimal: BigDecimal, precision: Int, scale: Int): Decimal = { this.decimalVal = decimal.setScale(scale, ROUND_HALF_UP) - require( - decimalVal.precision <= precision, - s"Decimal precision ${decimalVal.precision} exceeds max precision $precision") + if (decimalVal.precision > precision) { + throw new ArithmeticException( + s"Decimal precision ${decimalVal.precision} exceeds max precision $precision") + } this.longVal = 0L this._precision = precision this._scale = scale diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/DecimalExpressionSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/DecimalExpressionSuite.scala index 9856236149cec..fc5e8dc5ee7f1 100644 --- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/DecimalExpressionSuite.scala +++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/DecimalExpressionSuite.scala @@ -49,7 +49,6 @@ class DecimalExpressionSuite extends SparkFunSuite with ExpressionEvalHelper { intercept[ArithmeticException](evaluateWithoutCodegen(overflowExpr, null)) intercept[ArithmeticException](checkEvaluationWithUnsafeProjection(overflowExpr, null)) } - } test("PromotePrecision") {