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

    https://github.com/apache/spark/pull/22419#discussion_r218749189
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/mathExpressions.scala
 ---
    @@ -1245,3 +1245,80 @@ case class BRound(child: Expression, scale: 
Expression)
         with Serializable with ImplicitCastInputTypes {
       def this(child: Expression) = this(child, Literal(0))
     }
    +
    +/**
    + * The number truncated to scale decimal places.
    + */
    +// scalastyle:off line.size.limit
    +@ExpressionDescription(
    +  usage = "_FUNC_(number, scale) - Returns number truncated to scale 
decimal places. " +
    +    "If scale is omitted, then number is truncated to 0 places. " +
    +    "scale can be negative to truncate (make zero) scale digits left of 
the decimal point.",
    +  examples = """
    +    Examples:
    +      > SELECT _FUNC_(1234567891.1234567891, 4);
    +       1234567891.1234
    +      > SELECT _FUNC_(1234567891.1234567891, -4);
    +       1234560000
    +      > SELECT _FUNC_(1234567891.1234567891);
    +       1234567891
    +  """)
    +// scalastyle:on line.size.limit
    +case class Truncate(number: Expression, scale: Expression)
    +  extends BinaryExpression with ImplicitCastInputTypes {
    +
    +  def this(number: Expression) = this(number, Literal(0))
    +
    +  override def left: Expression = number
    +  override def right: Expression = scale
    +
    +  override def inputTypes: Seq[AbstractDataType] =
    +    Seq(TypeCollection(DoubleType, FloatType, DecimalType), IntegerType)
    +
    +  override def checkInputDataTypes(): TypeCheckResult = {
    +    super.checkInputDataTypes() match {
    +      case TypeCheckSuccess =>
    +        if (scale.foldable) {
    --- End diff --
    
    Same to `RoundBase`. only support foldable: 
https://github.com/apache/spark/blob/c7156943a2a32ba57e67aa6d8fa7035a09847e07/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/mathExpressions.scala#L1076


---

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

Reply via email to