Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-349

Add heuristic join-optimizer that can generate bushy joins

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.9.0-incubating
    • Component/s: None
    • Labels:
      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

            Activity

              People

              • Assignee:
                julianhyde Julian Hyde
                Reporter:
                julianhyde Julian Hyde
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: