This is an automated email from the ASF dual-hosted git repository.
hongze 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 05b757aadb [GLUTEN-7581][VL] Code cleanup for GlutenColumnarRule
(#7582)
05b757aadb is described below
commit 05b757aadb6a3cab15e4e62cea2096d50468309e
Author: Jiaan Geng <[email protected]>
AuthorDate: Tue Oct 22 08:15:30 2024 +0800
[GLUTEN-7581][VL] Code cleanup for GlutenColumnarRule (#7582)
Closes #7581
---
.../gluten/extension/GlutenColumnarRule.scala | 59 ++++++++--------------
1 file changed, 21 insertions(+), 38 deletions(-)
diff --git
a/gluten-core/src/main/scala/org/apache/gluten/extension/GlutenColumnarRule.scala
b/gluten-core/src/main/scala/org/apache/gluten/extension/GlutenColumnarRule.scala
index a98610ec87..3378344253 100644
---
a/gluten-core/src/main/scala/org/apache/gluten/extension/GlutenColumnarRule.scala
+++
b/gluten-core/src/main/scala/org/apache/gluten/extension/GlutenColumnarRule.scala
@@ -58,38 +58,6 @@ object GlutenColumnarRule {
override protected def withNewChildInternal(newChild: SparkPlan):
SparkPlan =
copy(child = newChild)
}
-
- object OutputsColumnarTester {
- def wrap(plan: SparkPlan): SparkPlan = {
- if (plan.supportsColumnar) {
- DummyColumnarOutputExec(plan)
- } else {
- DummyRowOutputExec(plan)
- }
- }
-
- def inferOutputsColumnar(plan: SparkPlan): Boolean = plan match {
- case DummyRowOutputExec(_) => false
- case RowToColumnarExec(DummyRowOutputExec(_)) => true
- case DummyColumnarOutputExec(_) => true
- case ColumnarToRowExec(DummyColumnarOutputExec(_)) => false
- case _ =>
- throw new IllegalStateException(
- "This should not happen. Please leave a issue at" +
- " https://github.com/apache/incubator-gluten.")
- }
-
- def unwrap(plan: SparkPlan): SparkPlan = plan match {
- case DummyRowOutputExec(child) => child
- case RowToColumnarExec(DummyRowOutputExec(child)) => child
- case DummyColumnarOutputExec(child) => child
- case ColumnarToRowExec(DummyColumnarOutputExec(child)) => child
- case _ =>
- throw new IllegalStateException(
- "This should not happen. Please leave a issue at" +
- " https://github.com/apache/incubator-gluten.")
- }
- }
}
case class GlutenColumnarRule(
@@ -109,16 +77,31 @@ case class GlutenColumnarRule(
*/
final override def preColumnarTransitions: Rule[SparkPlan] = plan => {
// To infer caller's property:
ApplyColumnarRulesAndInsertTransitions#outputsColumnar.
- OutputsColumnarTester.wrap(plan)
+ if (plan.supportsColumnar) {
+ DummyColumnarOutputExec(plan)
+ } else {
+ DummyRowOutputExec(plan)
+ }
}
override def postColumnarTransitions: Rule[SparkPlan] = plan => {
- val outputsColumnar = OutputsColumnarTester.inferOutputsColumnar(plan)
- val unwrapped = OutputsColumnarTester.unwrap(plan)
- val vanillaPlan = Transitions.insertTransitions(unwrapped, outputsColumnar)
+ val (originalPlan, outputsColumnar) = plan match {
+ case DummyRowOutputExec(child) =>
+ (child, false)
+ case RowToColumnarExec(DummyRowOutputExec(child)) =>
+ (child, true)
+ case DummyColumnarOutputExec(child) =>
+ (child, true)
+ case ColumnarToRowExec(DummyColumnarOutputExec(child)) =>
+ (child, false)
+ case _ =>
+ throw new IllegalStateException(
+ "This should not happen. Please leave an issue at" +
+ " https://github.com/apache/incubator-gluten.")
+ }
+ val vanillaPlan = Transitions.insertTransitions(originalPlan,
outputsColumnar)
val applier = applierBuilder.apply(session)
- val out = applier.apply(vanillaPlan, outputsColumnar)
- out
+ applier.apply(vanillaPlan, outputsColumnar)
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]