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 a rule that transforms joins according to the commutativity rule ((a join b) join c) -> (a join (b join c)).

      The rule would assume that conditions are pushed down as far as possible, and would push down conditions as far as possible. It remains TBD whether the rule would permit creation of cartesian joins.

      This rule compliments existing associativity rules for (SwapJoinRule) and exchange rules (two variants of PushJoinThroughJoinRule).

      When combined with the other rules, this will be able to find all possible join plans, including bushy plans. But it will increase the size of the search space, so we will need to be careful not to do exhaustive search for queries with more than, say, 7 joins. A heuristic/greedy algorithm will be needed for those cases.

        Activity

        Hide
        julianhyde Julian Hyde added a comment -

        Fixed in http://git-wip-us.apache.org/repos/asf/incubator-optiq/commit/b059c093.

        However, the rule is disabled by default, unless you set -Doptiq.enable.join.commute=true.

        Show
        julianhyde Julian Hyde added a comment - Fixed in http://git-wip-us.apache.org/repos/asf/incubator-optiq/commit/b059c093 . However, the rule is disabled by default, unless you set -Doptiq.enable.join.commute=true.
        Hide
        julianhyde Julian Hyde added a comment -

        Close issues resolved in release 0.9.0-incubating (2014-08-25).

        Show
        julianhyde Julian Hyde added a comment - Close issues resolved in release 0.9.0-incubating (2014-08-25).

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development