AngersZhuuuu commented on a change in pull request #31485:
URL: https://github.com/apache/spark/pull/31485#discussion_r571992802



##########
File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/LogicalPlanVisitor.scala
##########
@@ -47,6 +49,16 @@ trait LogicalPlanVisitor[T] {
 
   def default(p: LogicalPlan): T
 
+  def visitSubqueryExpression(p: LogicalPlan): LogicalPlan = {
+    p.transformExpressionsDown {
+      case subqueryExpression: SubqueryExpression =>
+        // trigger subquery's child plan stats propagation

Review comment:
       > This is weird. Doesn't EXPLAIN trigger the plan stats propagation?
   
   Yea, EXPLAIN trigger plan stats before build string:
   ```
     private def stringWithStats(maxFields: Int, append: String => Unit): Unit 
= {
       val maxFields = SQLConf.get.maxToStringFields
   
       // trigger to compute stats for logical plans
       try {
         optimizedPlan.stats
       } catch {
         case e: AnalysisException => append(e.toString + "\n")
       }
       // only show optimized logical plan and physical plan
       append("== Optimized Logical Plan ==\n")
       QueryPlan.append(optimizedPlan, append, verbose = true, addSuffix = 
true, maxFields)
       append("\n== Physical Plan ==\n")
       QueryPlan.append(executedPlan, append, verbose = true, addSuffix = 
false, maxFields)
       append("\n")
     }
   ```
   
   Have tested that in subquery, all behavior about statistic is right since 
when it use statistcs,it will call `plan.stats`.
   We do it here just trigger it earlier.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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

Reply via email to