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]

Reply via email to