liuzqt commented on code in PR #49715:
URL: https://github.com/apache/spark/pull/49715#discussion_r1945749349
##########
sql/core/src/main/scala/org/apache/spark/sql/execution/adaptive/AdaptiveSparkPlanExec.scala:
##########
@@ -579,23 +592,52 @@ case class AdaptiveSparkPlanExec(
allChildStagesMaterialized = false,
newStages = Seq(newStage))
- case q: QueryStageExec =>
+ case q: QueryStageExec if q ne currentPhysicalPlan =>
Review Comment:
I just noticed an even more complicated pattern from broken test: We create
a new non-result query stage as the root node, and that query stage is
immediately materialized due to stage reuse, so we have to create result stage
right after. Current implementation can not handle such case, and fixing is
might be hacky...
So yes I think maybe separating result and non-result query stage creation
is a better option. I'll rename it and add some comments to clarify.
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]