Github user viirya commented on a diff in the pull request:

    https://github.com/apache/spark/pull/22395#discussion_r217631634
  
    --- 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 --
    
    Yeah, I think it is reasonable as that is what we defined: `Hive Long 
Division: 'DIV'` in `AstBuilder.scala`.
    



---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to