From 7f3ec8ac42fa3499dd87aabac80459397b87cfd5 Mon Sep 17 00:00:00 2001 From: Fu Chen Date: Mon, 29 Sep 2025 10:42:42 +0800 Subject: [PATCH 1/4] fix: Fallback reverse function with array input --- .../scala/org/apache/comet/serde/QueryPlanSerde.scala | 3 +++ .../org/apache/comet/CometArrayExpressionSuite.scala | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala b/spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala index 892d8bca63..c6d5ecd8da 100644 --- a/spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala +++ b/spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala @@ -915,6 +915,9 @@ object QueryPlanSerde extends Logging with CometExprShim { case l @ Length(child) if child.dataType == BinaryType => withInfo(l, "Length on BinaryType is not supported") None + case r @ Reverse(child) if child.dataType.isInstanceOf[ArrayType] => + withInfo(r, "Reverse on ArrayType is not supported") + None case expr => QueryPlanSerde.exprSerdeMap.get(expr.getClass) match { case Some(handler) => diff --git a/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala b/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala index 56d9b3b429..34c58aa4f2 100644 --- a/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala +++ b/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala @@ -708,4 +708,14 @@ class CometArrayExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelp } } } + + test("test reverse function") { + withTable("t1") { + sql( + "create table t1 using parquet as select sequence(id, id) as c1 from range(10)") + // FIXME: Change checkSparkAnswer to checkSparkAnswerAndOperator after resolving + // https://github.com/apache/datafusion-comet/issues/2476 + checkSparkAnswer("select reverse(c1) AS x FROM t1 ORDER BY c1") + } + } } From 6d0872849fb1359499bd5f75e398560e2d6eb4c9 Mon Sep 17 00:00:00 2001 From: Fu Chen Date: Mon, 29 Sep 2025 11:14:32 +0800 Subject: [PATCH 2/4] fix style --- .../scala/org/apache/comet/CometArrayExpressionSuite.scala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala b/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala index 34c58aa4f2..528e17daba 100644 --- a/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala +++ b/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala @@ -711,8 +711,7 @@ class CometArrayExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelp test("test reverse function") { withTable("t1") { - sql( - "create table t1 using parquet as select sequence(id, id) as c1 from range(10)") + sql("create table t1 using parquet as select sequence(id, id) as c1 from range(10)") // FIXME: Change checkSparkAnswer to checkSparkAnswerAndOperator after resolving // https://github.com/apache/datafusion-comet/issues/2476 checkSparkAnswer("select reverse(c1) AS x FROM t1 ORDER BY c1") From eff47556a5d82896283a39da70aaef684fef9857 Mon Sep 17 00:00:00 2001 From: Fu Chen Date: Mon, 29 Sep 2025 11:21:56 +0800 Subject: [PATCH 3/4] address comment --- .../test/scala/org/apache/comet/CometArrayExpressionSuite.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala b/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala index 528e17daba..375308ec53 100644 --- a/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala +++ b/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala @@ -713,7 +713,7 @@ class CometArrayExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelp withTable("t1") { sql("create table t1 using parquet as select sequence(id, id) as c1 from range(10)") // FIXME: Change checkSparkAnswer to checkSparkAnswerAndOperator after resolving - // https://github.com/apache/datafusion-comet/issues/2476 + // https://github.com/apache/datafusion-comet/issues/2478 checkSparkAnswer("select reverse(c1) AS x FROM t1 ORDER BY c1") } } From fb047474a8a0f046165b8f1f919bd252a5c506b5 Mon Sep 17 00:00:00 2001 From: Fu Chen Date: Mon, 29 Sep 2025 12:03:01 +0800 Subject: [PATCH 4/4] fix ci --- .../org/apache/comet/CometArrayExpressionSuite.scala | 9 --------- .../scala/org/apache/comet/CometExpressionSuite.scala | 8 ++++++++ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala b/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala index 375308ec53..56d9b3b429 100644 --- a/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala +++ b/spark/src/test/scala/org/apache/comet/CometArrayExpressionSuite.scala @@ -708,13 +708,4 @@ class CometArrayExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelp } } } - - test("test reverse function") { - withTable("t1") { - sql("create table t1 using parquet as select sequence(id, id) as c1 from range(10)") - // FIXME: Change checkSparkAnswer to checkSparkAnswerAndOperator after resolving - // https://github.com/apache/datafusion-comet/issues/2478 - checkSparkAnswer("select reverse(c1) AS x FROM t1 ORDER BY c1") - } - } } diff --git a/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala b/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala index daf0e45cc8..ba992c89aa 100644 --- a/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala +++ b/spark/src/test/scala/org/apache/comet/CometExpressionSuite.scala @@ -3122,4 +3122,12 @@ class CometExpressionSuite extends CometTestBase with AdaptiveSparkPlanHelper { } } + test("test reverse function") { + withTable("t1") { + sql("create table t1 using parquet as select sequence(id, 10) as c1 from range(10)") + // FIXME: Change checkSparkAnswer to checkSparkAnswerAndOperator after resolving + // https://github.com/apache/datafusion-comet/issues/2478 + checkSparkAnswer("select reverse(c1) AS x FROM t1 ORDER BY c1") + } + } }