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/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") + } + } }