This is an automated email from the ASF dual-hosted git repository.

yao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new 36299f1b2bff [SPARK-47285][SQL] AdaptiveSparkPlanExec should always 
use the context.session
36299f1b2bff is described below

commit 36299f1b2bff8c892624bc5c0e4c00ea3f261532
Author: ulysses-you <ulyssesyo...@gmail.com>
AuthorDate: Wed Mar 6 09:53:53 2024 +0800

    [SPARK-47285][SQL] AdaptiveSparkPlanExec should always use the 
context.session
    
    ### What changes were proposed in this pull request?
    
    Use `context.session` instead of `session` to avoid potential issue. For 
example, a cached plan may re-instance `AdaptiveSparkPlanExec` with a different 
active session.
    
    ### Why are the changes needed?
    
    avoid potential issue
    
    ### Does this PR introduce _any_ user-facing change?
    
    avoid potential issue
    
    ### How was this patch tested?
    
    avoid potential issue
    
    ### Was this patch authored or co-authored using generative AI tooling?
    
    no
    
    Closes #45388 from ulysses-you/aqe.
    
    Authored-by: ulysses-you <ulyssesyo...@gmail.com>
    Signed-off-by: Kent Yao <y...@apache.org>
---
 .../apache/spark/sql/execution/adaptive/AdaptiveSparkPlanExec.scala  | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git 
a/sql/core/src/main/scala/org/apache/spark/sql/execution/adaptive/AdaptiveSparkPlanExec.scala
 
b/sql/core/src/main/scala/org/apache/spark/sql/execution/adaptive/AdaptiveSparkPlanExec.scala
index b2a1141f2f5b..2879aaca7215 100644
--- 
a/sql/core/src/main/scala/org/apache/spark/sql/execution/adaptive/AdaptiveSparkPlanExec.scala
+++ 
b/sql/core/src/main/scala/org/apache/spark/sql/execution/adaptive/AdaptiveSparkPlanExec.scala
@@ -87,7 +87,7 @@ case class AdaptiveSparkPlanExec(
 
   // The logical plan optimizer for re-optimizing the current logical plan.
   @transient private val optimizer = new AQEOptimizer(conf,
-    session.sessionState.adaptiveRulesHolder.runtimeOptimizerRules)
+    context.session.sessionState.adaptiveRulesHolder.runtimeOptimizerRules)
 
   // `EnsureRequirements` may remove user-specified repartition and assume the 
query plan won't
   // change its output partitioning. This assumption is not true in AQE. Here 
we check the
@@ -103,7 +103,8 @@ case class AdaptiveSparkPlanExec(
 
   @transient private val costEvaluator =
     conf.getConf(SQLConf.ADAPTIVE_CUSTOM_COST_EVALUATOR_CLASS) match {
-      case Some(className) => CostEvaluator.instantiate(className, 
session.sparkContext.getConf)
+      case Some(className) =>
+        CostEvaluator.instantiate(className, 
context.session.sparkContext.getConf)
       case _ => 
SimpleCostEvaluator(conf.getConf(SQLConf.ADAPTIVE_FORCE_OPTIMIZE_SKEWED_JOIN))
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to