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

Use heuristic rule to plan queries with large numbers of joins

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.8
    • Component/s: None
    • Labels:

      Description

      If a query has a large number of joins, the planning time and space grows exponentially in N, the number of joins. About about N=8 it is not possible to plan a query exhaustively.

      `LoptOptimizeJoinRule` is a heuristic join rule that uses a greedy algorithm. It operates on a `MultiJoinRel`, which must first have been created using `ConvertMultiJoinRule`. Enabling this rule, and disable the join transformation rules `SwapJoinRule` and `PushJoinThroughJoinRule`, it is possible to plan queries with N=60 and higher.

      ---------------- Imported from GitHub ----------------
      Url: https://github.com/julianhyde/optiq/issues/302
      Created by: julianhyde
      Labels:
      Created at: Wed Jun 18 03:27:16 CEST 2014
      State: open

        Activity

        Show
        julianhyde Julian Hyde added a comment - Fixed in https://github.com/julianhyde/optiq/commit/8506f14a8cce72600c814fefd807967c575899df .
        Hide
        julianhyde Julian Hyde added a comment -

        Close issues resolved in 0.8 release (2014-06-27).

        Show
        julianhyde Julian Hyde added a comment - Close issues resolved in 0.8 release (2014-06-27).

          People

          • Assignee:
            Unassigned
            Reporter:
            github-import GitHub Import
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development