You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gluten.apache.org by mi...@apache.org on 2026/09/21 01:01:46 UTC
(gluten) branch main updated: [MINOR][CORE] Make ColumnarInputAdapter inherit from GlutenPlan (#12973)
This is an automated email from the ASF dual-hosted git repository.
zml1206 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gluten.git
The following commit(s) were added to refs/heads/main by this push:
new 8ca75e4041 [MINOR][CORE] Make ColumnarInputAdapter inherit from GlutenPlan (#12973)
8ca75e4041 is described below
commit 8ca75e404125bf7562dce8e1bb94111dde508e67
Author: Kaifei Yi <yi...@apache.org>
AuthorDate: Mon Sep 21 09:01:40 2026 +0800
[MINOR][CORE] Make ColumnarInputAdapter inherit from GlutenPlan (#12973)
---
.../metrics/GlutenClickHouseTPCDSMetricsSuite.scala | 7 +++++--
.../metrics/GlutenClickHouseTPCHMetricsSuite.scala | 10 ++++++++--
.../sql/execution/ColumnarCollapseTransformStages.scala | 17 ++++++-----------
3 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/backends-clickhouse/src/test/scala/org/apache/gluten/execution/metrics/GlutenClickHouseTPCDSMetricsSuite.scala b/backends-clickhouse/src/test/scala/org/apache/gluten/execution/metrics/GlutenClickHouseTPCDSMetricsSuite.scala
index af025d8084..42093f3ff5 100644
--- a/backends-clickhouse/src/test/scala/org/apache/gluten/execution/metrics/GlutenClickHouseTPCDSMetricsSuite.scala
+++ b/backends-clickhouse/src/test/scala/org/apache/gluten/execution/metrics/GlutenClickHouseTPCDSMetricsSuite.scala
@@ -21,7 +21,7 @@ import org.apache.gluten.execution.GlutenPlan
import org.apache.spark.SparkConf
import org.apache.spark.sql.catalyst.expressions.Attribute
-import org.apache.spark.sql.execution.InputIteratorTransformer
+import org.apache.spark.sql.execution.{ColumnarInputAdapter, InputIteratorTransformer}
import org.apache.spark.task.TaskResources
import scala.collection.JavaConverters._
@@ -87,7 +87,10 @@ class GlutenClickHouseTPCDSMetricsSuite extends GlutenClickHouseTPCDSAbstractSui
) {
() =>
val allGlutenPlans = wholeStageTransformer.collect {
- case g: GlutenPlan if !g.isInstanceOf[InputIteratorTransformer] => g
+ case g: GlutenPlan
+ if !g.isInstanceOf[InputIteratorTransformer] &&
+ !g.isInstanceOf[ColumnarInputAdapter] =>
+ g
}
assert(allGlutenPlans.size == 30)
diff --git a/backends-clickhouse/src/test/scala/org/apache/gluten/execution/metrics/GlutenClickHouseTPCHMetricsSuite.scala b/backends-clickhouse/src/test/scala/org/apache/gluten/execution/metrics/GlutenClickHouseTPCHMetricsSuite.scala
index f5a70731d5..021ea6ae0d 100644
--- a/backends-clickhouse/src/test/scala/org/apache/gluten/execution/metrics/GlutenClickHouseTPCHMetricsSuite.scala
+++ b/backends-clickhouse/src/test/scala/org/apache/gluten/execution/metrics/GlutenClickHouseTPCHMetricsSuite.scala
@@ -246,7 +246,10 @@ class GlutenClickHouseTPCHMetricsSuite extends ParquetTPCHSuite {
) {
() =>
val allGlutenPlans = wholeStageTransformer1.collect {
- case g: GlutenPlan if !g.isInstanceOf[InputIteratorTransformer] => g
+ case g: GlutenPlan
+ if !g.isInstanceOf[InputIteratorTransformer] &&
+ !g.isInstanceOf[ColumnarInputAdapter] =>
+ g
}
val scanPlan = allGlutenPlans(9)
@@ -283,7 +286,10 @@ class GlutenClickHouseTPCHMetricsSuite extends ParquetTPCHSuite {
) {
() =>
val allGlutenPlans = wholeStageTransformer2.collect {
- case g: GlutenPlan if !g.isInstanceOf[InputIteratorTransformer] => g
+ case g: GlutenPlan
+ if !g.isInstanceOf[InputIteratorTransformer] &&
+ !g.isInstanceOf[ColumnarInputAdapter] =>
+ g
}
assert(allGlutenPlans.size == 58)
diff --git a/gluten-substrait/src/main/scala/org/apache/spark/sql/execution/ColumnarCollapseTransformStages.scala b/gluten-substrait/src/main/scala/org/apache/spark/sql/execution/ColumnarCollapseTransformStages.scala
index cf9fcdfd97..1cfca3f27e 100644
--- a/gluten-substrait/src/main/scala/org/apache/spark/sql/execution/ColumnarCollapseTransformStages.scala
+++ b/gluten-substrait/src/main/scala/org/apache/spark/sql/execution/ColumnarCollapseTransformStages.scala
@@ -20,7 +20,7 @@ import org.apache.gluten.backendsapi.BackendsApiManager
import org.apache.gluten.config.GlutenConfig
import org.apache.gluten.execution._
import org.apache.gluten.extension.ApplyStageInputStatsRule
-import org.apache.gluten.extension.columnar.transition.{Convention, ConventionReq}
+import org.apache.gluten.extension.columnar.transition.Convention
import org.apache.gluten.metrics.MetricsUpdater
import org.apache.gluten.substrait.SubstraitContext
import org.apache.gluten.substrait.rel.{InputIteratorRelNode, RelBuilder}
@@ -215,21 +215,16 @@ case class ColumnarCollapseTransformStages(glutenConf: GlutenConfig) extends Rul
}
}
-// TODO: Make this inherit from GlutenPlan.
case class ColumnarInputAdapter(child: SparkPlan)
- extends InputAdapterGenerateTreeStringShim
- with Convention.KnownBatchType
- with Convention.KnownRowType
- with ConventionReq.KnownChildConvention {
+ extends GlutenPlan
+ with InputAdapterGenerateTreeStringShim {
override def output: Seq[Attribute] = child.output
- final override val supportsColumnar: Boolean = true
- final override val supportsRowBased: Boolean = false
+ // Row output is unsupported, so GlutenPlan derives supportsRowBased = false.
override def rowType(): Convention.RowType = Convention.RowType.None
+ // Columnar output only, so GlutenPlan derives supportsColumnar = true. GlutenPlan's default
+ // requiredChildConvention then requires the same batch type from the child.
override def batchType(): Convention.BatchType =
BackendsApiManager.getSettings.primaryBatchType
- override def requiredChildConvention(): Seq[ConventionReq] = Seq(
- ConventionReq.ofBatch(
- ConventionReq.BatchType.Is(BackendsApiManager.getSettings.primaryBatchType)))
override protected def doExecute(): RDD[InternalRow] = throw new UnsupportedOperationException()
override protected def doExecuteColumnar(): RDD[ColumnarBatch] = child.executeColumnar()
override def outputPartitioning: Partitioning = child.outputPartitioning
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@gluten.apache.org
For additional commands, e-mail: commits-help@gluten.apache.org