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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]