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

Add heuristic join-optimizer that can generate bushy joins

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    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

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment