This is an automated email from the ASF dual-hosted git repository. kazuyukitanimura pushed a commit to branch fix-1729 in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git
commit 3a464601de54f9fab6a362c4c9fa93747de4c65d Author: Kazuyuki Tanimura <[email protected]> AuthorDate: Mon Mar 30 19:25:15 2026 -0700 test: ceil and floor works correctly for Decimal128 --- native/spark-expr/src/math_funcs/ceil.rs | 7 +++---- native/spark-expr/src/math_funcs/floor.rs | 7 +++---- .../main/scala/org/apache/comet/serde/math.scala | 24 ---------------------- .../org/apache/comet/CometExpressionSuite.scala | 4 ++++ 4 files changed, 10 insertions(+), 32 deletions(-) diff --git a/native/spark-expr/src/math_funcs/ceil.rs b/native/spark-expr/src/math_funcs/ceil.rs index b5bc1c31b..e1f0e69e5 100644 --- a/native/spark-expr/src/math_funcs/ceil.rs +++ b/native/spark-expr/src/math_funcs/ceil.rs @@ -164,7 +164,6 @@ mod test { // https://github.com/apache/datafusion-comet/issues/1729 #[test] - #[ignore] fn test_ceil_decimal128_array() -> Result<()> { let array = Decimal128Array::from(vec![ Some(12345), // 123.45 @@ -178,9 +177,9 @@ mod test { unreachable!() }; let expected = Decimal128Array::from(vec![ - Some(12400), // 124.00 - Some(12500), // 125.00 - Some(-12900), // -129.00 + Some(124), // 124.00 + Some(125), // 125.00 + Some(-129), // -129.00 None, ]) .with_precision_and_scale(5, 2)?; diff --git a/native/spark-expr/src/math_funcs/floor.rs b/native/spark-expr/src/math_funcs/floor.rs index 2028000e1..5cb1f16e3 100644 --- a/native/spark-expr/src/math_funcs/floor.rs +++ b/native/spark-expr/src/math_funcs/floor.rs @@ -164,7 +164,6 @@ mod test { // https://github.com/apache/datafusion-comet/issues/1729 #[test] - #[ignore] fn test_floor_decimal128_array() -> Result<()> { let array = Decimal128Array::from(vec![ Some(12345), // 123.45 @@ -178,9 +177,9 @@ mod test { unreachable!() }; let expected = Decimal128Array::from(vec![ - Some(12300), // 123.00 - Some(12500), // 125.00 - Some(-13000), // -130.00 + Some(123), // 123.00 + Some(125), // 125.00 + Some(-130), // -130.00 None, ]) .with_precision_and_scale(5, 2)?; diff --git a/spark/src/main/scala/org/apache/comet/serde/math.scala b/spark/src/main/scala/org/apache/comet/serde/math.scala index 5a0393142..ddc953857 100644 --- a/spark/src/main/scala/org/apache/comet/serde/math.scala +++ b/spark/src/main/scala/org/apache/comet/serde/math.scala @@ -38,18 +38,6 @@ object CometAtan2 extends CometExpressionSerde[Atan2] { } object CometCeil extends CometExpressionSerde[Ceil] { - - override def getSupportLevel(expr: Ceil): SupportLevel = { - expr.child.dataType match { - case _: DecimalType => - Incompatible( - Some( - "Incorrect results for Decimal type inputs" + - " (https://github.com/apache/datafusion-comet/issues/1729)")) - case _ => Compatible() - } - } - override def convert( expr: Ceil, inputs: Seq[Attribute], @@ -70,18 +58,6 @@ object CometCeil extends CometExpressionSerde[Ceil] { } object CometFloor extends CometExpressionSerde[Floor] { - - override def getSupportLevel(expr: Floor): SupportLevel = { - expr.child.dataType match { - case _: DecimalType => - Incompatible( - Some( - "Incorrect results for Decimal type inputs" + - " (https://github.com/apache/datafusion-comet/issues/1729)")) - case _ => Compatible() - } - } - override def convert( expr: Floor, inputs: Seq[Attribute], diff --git a/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala b/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala index 9fdd5a677..8aa88d615 100644 --- a/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala +++ b/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala @@ -1487,6 +1487,10 @@ class CometExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelper { checkSparkAnswerAndOperator(s"SELECT floor(cast(${n} as decimal(38, 18))) FROM tbl") checkSparkAnswerAndOperator(s"SELECT floor(cast(${n} as decimal(20, 0))) FROM tbl") } + for (n <- Seq("123.45", "125.00", "-129.99")) { + checkSparkAnswerAndOperator(s"SELECT ceil(cast(${n} as decimal(5, 2))) FROM tbl") + checkSparkAnswerAndOperator(s"SELECT floor(cast(${n} as decimal(5, 2))) FROM tbl") + } } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
