This is an automated email from the ASF dual-hosted git repository. zjuwangg pushed a commit to branch feat_sequence in repository https://gitbox.apache.org/repos/asf/gluten.git
commit 6b0a7f7f57fdd77cc8955b7d585897388e8dc692 Author: Terry Wang <[email protected]> AuthorDate: Mon Jun 22 17:36:52 2026 +0800 exclude timestamp support --- .../gluten/backendsapi/bolt/BoltSparkPlanExecApi.scala | 12 ++++++++++++ .../org/apache/gluten/backendsapi/SparkPlanExecApi.scala | 8 ++++++++ .../org/apache/gluten/expression/ExpressionConverter.scala | 5 +++++ 3 files changed, 25 insertions(+) diff --git a/backends-bolt/src/main/scala/org/apache/gluten/backendsapi/bolt/BoltSparkPlanExecApi.scala b/backends-bolt/src/main/scala/org/apache/gluten/backendsapi/bolt/BoltSparkPlanExecApi.scala index 13549a7599..12ebbb6833 100644 --- a/backends-bolt/src/main/scala/org/apache/gluten/backendsapi/bolt/BoltSparkPlanExecApi.scala +++ b/backends-bolt/src/main/scala/org/apache/gluten/backendsapi/bolt/BoltSparkPlanExecApi.scala @@ -177,6 +177,18 @@ class BoltSparkPlanExecApi extends SparkPlanExecApi { GenericExpressionTransformer(substraitExprName, Seq(child), expr) } + /** Transform sequence to Substrait. */ + override def genSequenceTransformer( + substraitExprName: String, + children: Seq[ExpressionTransformer], + expr: Sequence): ExpressionTransformer = { + if (expr.children.exists(_.dataType.isInstanceOf[TimestampType])) { + throw new GlutenNotSupportException( + "sequence with timestamp input is not supported in bolt backend") + } + GenericExpressionTransformer(substraitExprName, children, expr) + } + /** Transform array filter to Substrait. */ override def genArrayFilterTransformer( substraitExprName: String, diff --git a/gluten-substrait/src/main/scala/org/apache/gluten/backendsapi/SparkPlanExecApi.scala b/gluten-substrait/src/main/scala/org/apache/gluten/backendsapi/SparkPlanExecApi.scala index f1f0c149ce..b22195c318 100644 --- a/gluten-substrait/src/main/scala/org/apache/gluten/backendsapi/SparkPlanExecApi.scala +++ b/gluten-substrait/src/main/scala/org/apache/gluten/backendsapi/SparkPlanExecApi.scala @@ -260,6 +260,14 @@ trait SparkPlanExecApi { throw new GlutenNotSupportException("map_from_entries is not supported") } + /** Transform sequence to Substrait. */ + def genSequenceTransformer( + substraitExprName: String, + children: Seq[ExpressionTransformer], + expr: Sequence): ExpressionTransformer = { + GenericExpressionTransformer(substraitExprName, children, expr) + } + /** Transform array filter to Substrait. */ def genArrayFilterTransformer( substraitExprName: String, diff --git a/gluten-substrait/src/main/scala/org/apache/gluten/expression/ExpressionConverter.scala b/gluten-substrait/src/main/scala/org/apache/gluten/expression/ExpressionConverter.scala index 2dd7a3ac40..10cc6144ce 100644 --- a/gluten-substrait/src/main/scala/org/apache/gluten/expression/ExpressionConverter.scala +++ b/gluten-substrait/src/main/scala/org/apache/gluten/expression/ExpressionConverter.scala @@ -257,6 +257,11 @@ object ExpressionConverter extends SQLConfHelper with Logging { substraitExprName, replaceWithExpressionTransformer0(m.child, attributeSeq, expressionsMap), m) + case s: Sequence => + BackendsApiManager.getSparkPlanExecApiInstance.genSequenceTransformer( + substraitExprName, + s.children.map(replaceWithExpressionTransformer0(_, attributeSeq, expressionsMap)), + s) case e: Explode => ExplodeTransformer( substraitExprName, --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
