You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (JIRA)" <ji...@apache.org> on 2014/07/21 23:30:40 UTC

[jira] [Created] (OPTIQ-349) Add heuristic join-optimizer that can generate bushy joins

Julian Hyde created OPTIQ-349:
---------------------------------

             Summary: Add heuristic join-optimizer that can generate bushy joins
                 Key: OPTIQ-349
                 URL: https://issues.apache.org/jira/browse/OPTIQ-349
             Project: Optiq
          Issue Type: Bug
            Reporter: Julian Hyde
            Assignee: Julian Hyde


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.



--
This message was sent by Atlassian JIRA
(v6.2#6252)