tanelk commented on a change in pull request #29092:
URL: https://github.com/apache/spark/pull/29092#discussion_r500207664



##########
File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala
##########
@@ -1847,3 +1848,25 @@ object OptimizeLimitZero extends Rule[LogicalPlan] {
       empty(ll)
   }
 }
+
+/**
+ * Generates filters for exploded expression, such that rows that would have 
been removed
+ * by this [[Generate]] can be removed earlier - before joins and in data 
sources.
+ */
+object InferFiltersFromGenerate extends Rule[LogicalPlan] {
+  def apply(plan: LogicalPlan): LogicalPlan = plan transformUp {
+    case g @ Generate(e: ExplodeBase, _, false, _, _, child)

Review comment:
       I'm not familiar with other generators and focused only on the ones that 
I regularly use. 
   But yes, I'm sure it can be expanded to include other Generators as well, 
but there can be some exceptions.




----------------------------------------------------------------
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]



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

Reply via email to