From 6ee30ee709e527ac30a283dd18dba980318205d0 Mon Sep 17 00:00:00 2001 From: Hongze Zhang Date: Fri, 12 Sep 2025 19:41:16 +0200 Subject: [PATCH] [CORE] Fix FallbackByNativeValidation attempts to offload a whole tree than a single node As title. FallbackByNativeValidation is supposed to handle a single node. We currently pass a tree to the offload attempt. --- .../extension/columnar/validator/Validators.scala | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gluten-substrait/src/main/scala/org/apache/gluten/extension/columnar/validator/Validators.scala b/gluten-substrait/src/main/scala/org/apache/gluten/extension/columnar/validator/Validators.scala index ef4a50ee7a5b..3be033451eb3 100644 --- a/gluten-substrait/src/main/scala/org/apache/gluten/extension/columnar/validator/Validators.scala +++ b/gluten-substrait/src/main/scala/org/apache/gluten/extension/columnar/validator/Validators.scala @@ -21,7 +21,6 @@ import org.apache.gluten.config.GlutenConfig import org.apache.gluten.execution._ import org.apache.gluten.expression.ExpressionUtils import org.apache.gluten.extension.columnar.FallbackTags -import org.apache.gluten.extension.columnar.heuristic.LegacyOffload import org.apache.gluten.extension.columnar.offload.OffloadSingleNode import org.apache.gluten.sql.shims.SparkShimLoader @@ -232,7 +231,6 @@ object Validators { private class FallbackByNativeValidation(offloadRules: Seq[OffloadSingleNode]) extends Validator with Logging { - private val offloadAttempt: LegacyOffload = LegacyOffload(offloadRules) override def validate(plan: SparkPlan): Validator.OutCome = { val offloadedNode = offloadAttempt.apply(plan) val out = offloadedNode match { @@ -244,6 +242,14 @@ object Validators { } out } + + private val offloadAttempt: SparkPlan => SparkPlan = { + node => + offloadRules.foldLeft(node) { + case (node, rule) => + rule.offload(node) + } + } } /**