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]

Reply via email to