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]

Reply via email to