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]