cloud-fan commented on a change in pull request #34729:
URL: https://github.com/apache/spark/pull/34729#discussion_r789493919



##########
File path: 
sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/MathExpressionsSuite.scala
##########
@@ -705,6 +818,42 @@ class MathExpressionsSuite extends SparkFunSuite with 
ExpressionEvalHelper {
     checkEvaluation(BRound(-3.5, 0), -4.0)
     checkEvaluation(BRound(-0.35, 1), -0.4)
     checkEvaluation(BRound(-35, -1), -40)
+    checkEvaluation(checkDataTypeAndCast(
+      FloorExpressionBuilder.build(Seq(Literal(2.5), Literal(0)))), 2L)
+    checkEvaluation(checkDataTypeAndCast(
+      FloorExpressionBuilder.build(Seq(Literal(3.5), Literal(0)))), 3L)
+    checkEvaluation(checkDataTypeAndCast(
+      FloorExpressionBuilder.build(Seq(Literal(-2.5), Literal(0)))), -3L)
+    checkEvaluation(checkDataTypeAndCast(
+      FloorExpressionBuilder.build(Seq(Literal(-3.5), Literal(0)))), -4L)
+    checkEvaluation(checkDataTypeAndCast(
+      FloorExpressionBuilder.build(Seq(Literal(-0.35), Literal(1)))), -0.4)
+    checkEvaluation(checkDataTypeAndCast(
+      FloorExpressionBuilder.build(Seq(Literal(-35), Literal(-1)))), -40L)
+    checkEvaluation(checkDataTypeAndCast(
+      CeilExpressionBuilder.build(Seq(Literal(2.5), Literal(0)))), 3L)
+    checkEvaluation(checkDataTypeAndCast(
+      CeilExpressionBuilder.build(Seq(Literal(3.5), Literal(0)))), 4L)
+    checkEvaluation(checkDataTypeAndCast(
+      CeilExpressionBuilder.build(Seq(Literal(-2.5), Literal(0)))), -2L)
+    checkEvaluation(checkDataTypeAndCast(
+      CeilExpressionBuilder.build(Seq(Literal(-3.5), Literal(0)))), -3L)
+    checkEvaluation(checkDataTypeAndCast(
+      CeilExpressionBuilder.build(Seq(Literal(-0.35), Literal(1)))), -0.3)
+    checkEvaluation(checkDataTypeAndCast(
+      CeilExpressionBuilder.build(Seq(Literal(-35), Literal(-1)))), -30L)
+    checkEvaluation(checkDataTypeAndCast(
+      FloorExpressionBuilder.build(Seq(Literal(-0.1), Literal(0)))), -1L)
+    checkEvaluation(checkDataTypeAndCast(
+      FloorExpressionBuilder.build(Seq(Literal(5), Literal(0)))), 5L)
+    checkEvaluation(checkDataTypeAndCast(
+      FloorExpressionBuilder.build(Seq(Literal(3.1411), Literal(-3)))), 0L)
+    checkEvaluation(checkDataTypeAndCast(
+      CeilExpressionBuilder.build(Seq(Literal(-0.1), Literal(0)))), 0L)
+    checkEvaluation(checkDataTypeAndCast(
+      CeilExpressionBuilder.build(Seq(Literal(5), Literal(0)))), 5L)
+    checkEvaluation(checkDataTypeAndCast(
+      CeilExpressionBuilder.build(Seq(Literal(3.1411), Literal(-3)))), 1000L)

Review comment:
       > this produces the result of scale = 0 and the return type is always 
decimal.
   
   No, I'm not saying we should change the calculation. I mean we should return 
decimal type, so that it can be bigger than int64 (decimal type can hold 38 
digits).




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to