viirya commented on a change in pull request #24637: [SPARK-27707][SQL] Prune 
unnecessary nested fields from Generate to address performance issue in explode
URL: https://github.com/apache/spark/pull/24637#discussion_r285965199
 
 

 ##########
 File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala
 ##########
 @@ -588,6 +588,16 @@ object ColumnPruning extends Rule[LogicalPlan] {
         .map(_._2)
       p.copy(child = g.copy(child = newChild, unrequiredChildIndex = 
unrequiredIndices))
 
+    // prune unrequired nested fields
+    case p @ Project(projectList, g: Generate) =>
 
 Review comment:
   I think this is more general case you are looking for:
   
   
https://github.com/apache/spark/blob/163a6e298213f216f74f4764e241ee6298ea30b6/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala#L623-L624
   
   In the general case, it's doing pruning only when the flag 
(nestedSchemaPruningEnabled) is enabled. The case considers some operators that 
nested project can be pushed through. `Generate` isn't one of them. So the 
general case doesn't work on this case.

----------------------------------------------------------------
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:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to