andygrove opened a new issue, #3892:
URL: https://github.com/apache/arrow-datafusion/issues/3892

   **Is your feature request related to a problem or challenge? Please describe 
what you are trying to do.**
   Improve efficiency of multiple optimizer passes
   
   **Describe the solution you'd like**
   
   Thanks to @isidentical  for this suggestion.
   
   Instead of having the optimizer decide when it is done by seeing if the last 
pass changed the plan or not, based on the Display representation of the plan, 
it might also make sense to compute a unique plan id (bottom up) so that we can 
also use this to detect optimization cycles.
   
   A very basic example is (assuming each letter is a unique plan id) A -> B -> 
C -> A -> B -> [max passes times more], where even though the previous plan is 
different from the current one we would still need to exit the loop. Having a 
unique id would mean we can just store a set somewhere and check against if 
known_plans.contains(new_plan.id) and it would break the loop.
   
   **Describe alternatives you've considered**
   
   **Additional context**
   Discussion at 
https://github.com/apache/arrow-datafusion/pull/3880/files#r998491734
   


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

Reply via email to