From 122ca46511d6ccbf94ff13e704d2570e2328e771 Mon Sep 17 00:00:00 2001 From: wforget <643348094@qq.com> Date: Tue, 14 Jan 2025 21:23:02 +0800 Subject: [PATCH 1/4] fix: cast timestamp to decimal is unsupported --- .../main/scala/org/apache/comet/expressions/CometCast.scala | 1 - spark/src/test/scala/org/apache/comet/CometCastSuite.scala | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/spark/src/main/scala/org/apache/comet/expressions/CometCast.scala b/spark/src/main/scala/org/apache/comet/expressions/CometCast.scala index 859cb13be..6b0b10d80 100644 --- a/spark/src/main/scala/org/apache/comet/expressions/CometCast.scala +++ b/spark/src/main/scala/org/apache/comet/expressions/CometCast.scala @@ -204,7 +204,6 @@ object CometCast { Compatible() case DataTypes.StringType => Compatible() case DataTypes.DateType => Compatible() - case _: DecimalType => Compatible() case _ => Unsupported } } diff --git a/spark/src/test/scala/org/apache/comet/CometCastSuite.scala b/spark/src/test/scala/org/apache/comet/CometCastSuite.scala index f8c1a8b09..97f92a068 100644 --- a/spark/src/test/scala/org/apache/comet/CometCastSuite.scala +++ b/spark/src/test/scala/org/apache/comet/CometCastSuite.scala @@ -838,8 +838,9 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper { castTest(generateTimestamps(), DataTypes.DoubleType) } - test("cast TimestampType to DecimalType(10,2)") { - castTest(generateTimestamps(), DataTypes.TimestampType) + test("cast TimestampType to DecimalType(10,2) is unsupported") { + castFallbackTest(generateTimestamps(), DataTypes.createDecimalType(10, 2), + "Unsupported cast from TimestampType to DecimalType(10,2)") } test("cast TimestampType to StringType") { From a8a4da99cb5a06b4b2e9eda821b1f16168d23925 Mon Sep 17 00:00:00 2001 From: wforget <643348094@qq.com> Date: Tue, 14 Jan 2025 21:35:23 +0800 Subject: [PATCH 2/4] fix style --- spark/src/test/scala/org/apache/comet/CometCastSuite.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spark/src/test/scala/org/apache/comet/CometCastSuite.scala b/spark/src/test/scala/org/apache/comet/CometCastSuite.scala index 97f92a068..13c3d2ff0 100644 --- a/spark/src/test/scala/org/apache/comet/CometCastSuite.scala +++ b/spark/src/test/scala/org/apache/comet/CometCastSuite.scala @@ -839,7 +839,9 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper { } test("cast TimestampType to DecimalType(10,2) is unsupported") { - castFallbackTest(generateTimestamps(), DataTypes.createDecimalType(10, 2), + castFallbackTest( + generateTimestamps(), + DataTypes.createDecimalType(10, 2), "Unsupported cast from TimestampType to DecimalType(10,2)") } From 53a92eadc98ed354bed3fd8410d2df4ca56be6a5 Mon Sep 17 00:00:00 2001 From: wforget <643348094@qq.com> Date: Tue, 14 Jan 2025 23:03:21 +0800 Subject: [PATCH 3/4] revert test name and mark as ignore --- spark/src/test/scala/org/apache/comet/CometCastSuite.scala | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/spark/src/test/scala/org/apache/comet/CometCastSuite.scala b/spark/src/test/scala/org/apache/comet/CometCastSuite.scala index 13c3d2ff0..ba2184895 100644 --- a/spark/src/test/scala/org/apache/comet/CometCastSuite.scala +++ b/spark/src/test/scala/org/apache/comet/CometCastSuite.scala @@ -838,11 +838,8 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper { castTest(generateTimestamps(), DataTypes.DoubleType) } - test("cast TimestampType to DecimalType(10,2) is unsupported") { - castFallbackTest( - generateTimestamps(), - DataTypes.createDecimalType(10, 2), - "Unsupported cast from TimestampType to DecimalType(10,2)") + ignore("cast TimestampType to DecimalType(10,2)") { + castTest(generateTimestamps(), DataTypes.createDecimalType(10, 2)) } test("cast TimestampType to StringType") { From 90fc8665de5bb90b2a715c8d2dd841582c0fd3f4 Mon Sep 17 00:00:00 2001 From: wforget <643348094@qq.com> Date: Tue, 14 Jan 2025 23:26:00 +0800 Subject: [PATCH 4/4] add comment --- spark/src/test/scala/org/apache/comet/CometCastSuite.scala | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spark/src/test/scala/org/apache/comet/CometCastSuite.scala b/spark/src/test/scala/org/apache/comet/CometCastSuite.scala index ba2184895..27d8e2357 100644 --- a/spark/src/test/scala/org/apache/comet/CometCastSuite.scala +++ b/spark/src/test/scala/org/apache/comet/CometCastSuite.scala @@ -839,6 +839,8 @@ class CometCastSuite extends CometTestBase with AdaptiveSparkPlanHelper { } ignore("cast TimestampType to DecimalType(10,2)") { + // https://github.com/apache/datafusion-comet/issues/1280 + // Native cast invoked for unsupported cast from Timestamp(Microsecond, Some("Etc/UTC")) to Decimal128(10, 2) castTest(generateTimestamps(), DataTypes.createDecimalType(10, 2)) }