Github user dongjoon-hyun commented on a diff in the pull request: https://github.com/apache/spark/pull/22395#discussion_r217626193 --- Diff: sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala --- @@ -314,6 +314,27 @@ case class Divide(left: Expression, right: Expression) extends DivModLike { override def evalOperation(left: Any, right: Any): Any = div(left, right) } +@ExpressionDescription( + usage = "expr1 _FUNC_ expr2 - Returns `expr1`/`expr2`. It performs integral division.", + examples = """ + Examples: + > SELECT 3 _FUNC_ 2; + 1 + """, + since = "3.0.0") +case class IntegralDivide(left: Expression, right: Expression) extends DivModLike { + + override def inputType: AbstractDataType = IntegralType + + override def symbol: String = "/" + override def sqlOperator: String = "div" + + private lazy val div: (Any, Any) => Any = dataType match { + case i: IntegralType => i.integral.asInstanceOf[Integral[Any]].quot + } + override def evalOperation(left: Any, right: Any): Any = div(left, right) --- End diff -- +1 for @cloud-fan 's suggestion.
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org