This is an automated email from the ASF dual-hosted git repository.
mbutrovich pushed a commit to branch branch-0.10
in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git
The following commit(s) were added to refs/heads/branch-0.10 by this push:
new 357d6c488 perf: Improve BroadcastExchangeExec conversion (#2417)
(#2501)
357d6c488 is described below
commit 357d6c4883990f40b9cef44de8654dbb1f6c3179
Author: Andy Grove <[email protected]>
AuthorDate: Tue Sep 30 06:38:39 2025 -0600
perf: Improve BroadcastExchangeExec conversion (#2417) (#2501)
Co-authored-by: Zhen Wang <[email protected]>
---
spark/src/main/scala/org/apache/comet/rules/CometExecRule.scala | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/spark/src/main/scala/org/apache/comet/rules/CometExecRule.scala
b/spark/src/main/scala/org/apache/comet/rules/CometExecRule.scala
index a71eed6c8..091f70fdc 100644
--- a/spark/src/main/scala/org/apache/comet/rules/CometExecRule.scala
+++ b/spark/src/main/scala/org/apache/comet/rules/CometExecRule.scala
@@ -154,7 +154,7 @@ case class CometExecRule(session: SparkSession) extends
Rule[SparkPlan] {
operator2Proto(op).map(fun).getOrElse(op)
}
- plan.transformUp {
+ def convertNode(op: SparkPlan): SparkPlan = op match {
// Fully native scan for V1
case scan: CometScanExec if scan.scanImpl ==
CometConf.SCAN_NATIVE_DATAFUSION =>
val nativeOp = QueryPlanSerde.operator2Proto(scan).get
@@ -446,7 +446,7 @@ case class CometExecRule(session: SparkSession) extends
Rule[SparkPlan] {
case other => other
}
if (!newChildren.exists(_.isInstanceOf[BroadcastExchangeExec])) {
- val newPlan = apply(plan.withNewChildren(newChildren))
+ val newPlan = convertNode(plan.withNewChildren(newChildren))
if (isCometNative(newPlan) || isCometBroadCastForceEnabled(conf)) {
newPlan
} else {
@@ -554,6 +554,10 @@ case class CometExecRule(session: SparkSession) extends
Rule[SparkPlan] {
}
}
}
+
+ plan.transformUp { case op =>
+ convertNode(op)
+ }
}
private def normalizePlan(plan: SparkPlan): SparkPlan = {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]