Github user mgaido91 commented on a diff in the pull request: https://github.com/apache/spark/pull/21599#discussion_r199632638 --- Diff: sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala --- @@ -128,17 +128,31 @@ abstract class BinaryArithmetic extends BinaryOperator with NullIntolerant { def calendarIntervalMethod: String = sys.error("BinaryArithmetics must override either calendarIntervalMethod or genCode") + def checkOverflowCode(result: String, op1: String, op2: String): String = + sys.error("BinaryArithmetics must override either checkOverflowCode or genCode") + override def doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode = dataType match { case _: DecimalType => defineCodeGen(ctx, ev, (eval1, eval2) => s"$eval1.$decimalMethod($eval2)") case CalendarIntervalType => defineCodeGen(ctx, ev, (eval1, eval2) => s"$eval1.$calendarIntervalMethod($eval2)") + // In the following cases, overflow can happen, so we need to check the result is valid. + // Otherwise we throw an ArithmeticException --- End diff -- @gatorsmile @hvanhovell do you have time to check this and give your opinion here? Thanks.
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org