Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Add OptimizeBushyJoinRule, a heuristic join-optimizer that can generate bushy joins.
We already have LoptOptimizeJoinRule, which is capable of optimizing join order using heuristics, but it is not capable of generating bushy joins. We also have rules that can exhaustively generate all join-orderings (and OPTIQ-346 adds another rule) but this is impractical for N above about 7.
This is a different approach to OPTIQ-299. Like 299, after choosing a global order, we want to be able to apply regular Optiq rules to optimize further; but rather than adding "firewall" relational expressions to partitioning the graph, as advocated by 299, we might change the Volcano engine to allow regular rules if they immediately generate a cheaper relational expression or if they generate a cheaper relational expression after a maximum of N steps or C worsening of cost.
Attachments
Issue Links
- relates to
-
CALCITE-357 Run heuristic join algorithm several times with noise
- Open