This is an automated email from the ASF dual-hosted git repository.

rui pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new 1d98326a4b [VL] Add Spark array_sort support with lambda function 
(#10780)
1d98326a4b is described below

commit 1d98326a4bea31eb735d600ca56649ba50ef8642
Author: Rex(Hui) An <[email protected]>
AuthorDate: Mon Sep 29 18:55:26 2025 +0800

    [VL] Add Spark array_sort support with lambda function (#10780)
---
 .../gluten/backendsapi/velox/VeloxSparkPlanExecApi.scala     |  8 ++++++++
 .../org/apache/gluten/execution/MiscOperatorSuite.scala      | 12 ++++++++++++
 2 files changed, 20 insertions(+)

diff --git 
a/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxSparkPlanExecApi.scala
 
b/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxSparkPlanExecApi.scala
index 463514fb5c..6d46d09c1f 100644
--- 
a/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxSparkPlanExecApi.scala
+++ 
b/backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxSparkPlanExecApi.scala
@@ -200,6 +200,14 @@ class VeloxSparkPlanExecApi extends SparkPlanExecApi {
     }
   }
 
+  override def genArraySortTransformer(
+      substraitExprName: String,
+      argument: ExpressionTransformer,
+      function: ExpressionTransformer,
+      expr: ArraySort): ExpressionTransformer = {
+    GenericExpressionTransformer(substraitExprName, Seq(argument, function), 
expr)
+  }
+
   /** Transform array exists to Substrait */
   override def genArrayExistsTransformer(
       substraitExprName: String,
diff --git 
a/backends-velox/src/test/scala/org/apache/gluten/execution/MiscOperatorSuite.scala
 
b/backends-velox/src/test/scala/org/apache/gluten/execution/MiscOperatorSuite.scala
index 04d8f7dfff..5403b786b3 100644
--- 
a/backends-velox/src/test/scala/org/apache/gluten/execution/MiscOperatorSuite.scala
+++ 
b/backends-velox/src/test/scala/org/apache/gluten/execution/MiscOperatorSuite.scala
@@ -1188,6 +1188,18 @@ class MiscOperatorSuite extends 
VeloxWholeStageTransformerSuite with AdaptiveSpa
     }
   }
 
+  test("array_sort") {
+    withTable("t") {
+      sql("create table t (a array<string>) using parquet")
+      sql("insert into t values (array('a', 'acds', 'bcedf', 'dc'))")
+      runQueryAndCompare(
+        "select array_sort(a, (x, y) -> " +
+          "if(length(x) > length(y), 1, if(length(x) < length(y), -1, 0))) 
from t") {
+        checkGlutenOperatorMatch[ProjectExecTransformer]
+      }
+    }
+  }
+
   test("Support bool type filter in scan") {
     withTable("t") {
       sql("create table t (id int, b boolean) using parquet")


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to