GitHub user sirpkt opened a pull request:

    https://github.com/apache/tajo/pull/379

    TAJO-1277: GreedyHeuristicJoinOrderAlgorithm sometimes wrongly assumes 
associativity of joins

    Basically, it limits the range of join ordering until it meets outer join 
operations.
    For example, in the case of (((((a inner join b) inner join c) outer join 
d) inner join e) inner join f),
    join ordering is partitioned as three parts as
    1) (a inner join b) inner join c
    2) (result of 1) outer join d
    3) (((result of 2) inner join e) inner join f) 
    
    Following modifications are included:
    - findBestOrder() is changed to partition join ordering
    - getBestPair() and findJoin() are changed to return the corresponding 
JoinEdges of the selected join because those JoinEdges should be removed before 
next join ordering
    
    It passes 'mvn clean install' and several join cases I tested,
    however, I'm not sure this is good approach.
    Please, leave me comments about the patch.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/sirpkt/tajo TAJO-1277

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/tajo/pull/379.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #379
    
----
commit 74802e228dd3af8e885cc724c32d5746939c2c23
Author: Keuntae Park <[email protected]>
Date:   2015-02-09T09:21:04Z

    join optimizer is enhanced to distinguish non-associative join cases

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to