[
https://issues.apache.org/jira/browse/TAJO-1310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14317643#comment-14317643
]
ASF GitHub Bot commented on TAJO-1310:
--------------------------------------
GitHub user jihoonson opened a pull request:
https://github.com/apache/tajo/pull/381
TAJO-1310: Maintaining join filters in join operators
Summary of changes
* Add ```AbstractJoinExec``` which is a super class of all physical join
executor classes.
* Add the join filter to the logical ```JoinNode``` and
```AbstractJoinExec```.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/jihoonson/tajo-2 TAJO-1310
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/tajo/pull/381.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 #381
----
commit 3a6d6ec17196e0c94b30544fc0de63273e865dcf
Author: Jihoon Son <[email protected]>
Date: 2015-02-10T07:47:35Z
TAJO-1310
commit 2ed28e560a670dea61934ad6129ed3ca9fa1b3c2
Author: Jihoon Son <[email protected]>
Date: 2015-02-11T12:53:56Z
TAJO-1310
commit 92d58b583579414c3b800165d55152663223d87d
Author: Jihoon Son <[email protected]>
Date: 2015-02-12T04:41:55Z
TAJO-1130
commit b2bead04200938acba2b49f04f724b226abf856b
Author: Jihoon Son <[email protected]>
Date: 2015-02-12T05:17:50Z
TAJO-1310
commit 801e59337766b30915da086e070c00cdd172456d
Author: Jihoon Son <[email protected]>
Date: 2015-02-12T05:44:11Z
TAJO-1310
----
> Maintaining join filters in join operators
> ------------------------------------------
>
> Key: TAJO-1310
> URL: https://issues.apache.org/jira/browse/TAJO-1310
> Project: Tajo
> Issue Type: Improvement
> Components: parser, physical operator, planner/optimizer
> Reporter: Jihoon Son
> Assignee: Jihoon Son
> Priority: Blocker
> Fix For: 0.11
>
>
> *Introduction*
> A join statement can contain join predicates and join filters.
> Join predicates are evaluated during performing the join operation, while
> join filters are evaluated on the set of join results.
> Let me consider an example join query as follows:
> {noformat}
> default> select n_nationkey from nation left outer join region on n_nationkey
> = r_regionkey where r_regionkey is null;
> {noformat}
> In this query, the join predicates and filters are as follows:
> * Join predicates: n_nationkey = r_regionkey
> * Join filters: r_regionkey is null
> *Problem*
> Currently, in query plans, join filters are handled as selection operators,
> while join predicates are maintained as member variables of join operators.
> This approach makes the implementation simple, but difficult to find the
> selection operators corresponding to join operators because they are
> separately maintained.
> This problem is critical when the logical plan optimizer optimizes the join
> order of a query statement that contains two or more joins each of that has
> join filters.
> *Solution*
> Join filters should be distinguished from selection filters, and maintained
> in the corresponding join operators. For this, we should add join filtlers to
> the join expression, the logical join node, and several physical join
> executors.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)