alamb commented on PR #15566:
URL: https://github.com/apache/datafusion/pull/15566#issuecomment-2791020563

   > It was @alamb that suggested we do it this way, unless I misunderstood his 
suggestion.
   > 
   > I think it's possible to do the recursion as an optimizer rule but making 
the APIs flexible enough to handle all of the cases with joins, etc. gets very 
complicated especially because the recursion needs to probe and jump, transmit 
information back up, etc.
   
   I think my original suggestions were around trying to simplify the changes 
to ExecutionPlan trait. As I recall the original draft PR had at least three 
new methods on `ExecutionPlan` that had to be kept in sync:
   1. Could the node itself handle any filters internally?
   2. Could the node push filters past itself (the equivalent of what 
`try_swap_with_projection` does)?
   3. Did the node produce any dynamic filters?
   
   By combining the operations into a single method that did all three at once 
the ExecutionPlan changes were much smaller. I don't remember any opinions 
about the recursion but I may not have made that clear
   


-- 
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: github-unsubscr...@datafusion.apache.org

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


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

Reply via email to