[
https://issues.apache.org/jira/browse/TAJO-1126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14182479#comment-14182479
]
ASF GitHub Bot commented on TAJO-1126:
--------------------------------------
GitHub user hyunsik opened a pull request:
https://github.com/apache/tajo/pull/209
TAJO-1126: Join condition including functions throws IllegalArgumentExce...
...ption.
Thank you for enclosing the reproducible query and detailed bug reports.
In addition to above description, I discussed this problem with Hyoungjun
in offline chat. He informed me the bug where the parameterized unit tests in
TestJoin does not work. The fact that QueryUnitRequesttImpl newly creates
TajoConf instance instead of taking existing TajoConf causes this bug. So,
given parameters were lost during unit tests. This problem is hiding the unit
test failures. As he mentioned, I could find about 20 test failures in TestJoin
when I fixed this parameters loss problem.
I found the bug from PlannerUtil::isJoinQual. I improved this method to
take two schemas of both relations for join, and I also enabled the method to
ensure by checking schemas if both expressions composes a join condition. As a
result, all the failures in TestJoin are passed.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/hyunsik/tajo TAJO-1126
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/tajo/pull/209.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 #209
----
commit 0e19341b4061a441a1e2a349cde78a24bfa281cd
Author: Hyunsik Choi <[email protected]>
Date: 2014-10-24T05:48:24Z
TAJO-1126: Join condition including functions throws
IllegalArgumentException.
----
> Join condition including functions throws IllegalArgumentException.
> -------------------------------------------------------------------
>
> Key: TAJO-1126
> URL: https://issues.apache.org/jira/browse/TAJO-1126
> Project: Tajo
> Issue Type: Bug
> Reporter: Hyoungjun Kim
> Assignee: Hyunsik Choi
> Priority: Minor
>
> MergeJoin with function eval throws the following IllegalArgumentException.
> {code:sql}
> select
> n1.n_nationkey,
> n1.n_name,
> n2.n_name
> from nation n1 join (select * from nation union select * from nation) n2 on
> substr(n1.n_name, 1, 4) = substr(n2.n_name, 1, 4)
> order by n1.n_nationkey;
> {code}
> {noformat}
> java.lang.IllegalArgumentException: At least one sort key must be specified
> at
> com.google.common.base.Preconditions.checkArgument(Preconditions.java:88)
> at
> org.apache.tajo.engine.planner.logical.SortNode.setSortSpecs(SortNode.java:35)
> at
> org.apache.tajo.engine.planner.PhysicalPlannerImpl.createMergeInnerJoin(PhysicalPlannerImpl.java:443)
> at
> org.apache.tajo.engine.planner.PhysicalPlannerImpl.createBestInnerJoinPlan(PhysicalPlannerImpl.java:433)
> at
> org.apache.tajo.engine.planner.PhysicalPlannerImpl.createInnerJoinPlan(PhysicalPlannerImpl.java:377)
> at
> org.apache.tajo.engine.planner.PhysicalPlannerImpl.createJoinPlan(PhysicalPlannerImpl.java:292)
> at
> org.apache.tajo.engine.planner.PhysicalPlannerImpl.createPlanRecursive(PhysicalPlannerImpl.java:218)
> at
> org.apache.tajo.engine.planner.PhysicalPlannerImpl.createPlanRecursive(PhysicalPlannerImpl.java:207)
> at
> org.apache.tajo.engine.planner.PhysicalPlannerImpl.createPlan(PhysicalPlannerImpl.java:90)
> at
> org.apache.tajo.worker.TajoQueryEngine.createPlan(TajoQueryEngine.java:40)
> at org.apache.tajo.worker.Task.run(Task.java:442)
> at org.apache.tajo.worker.TaskRunner$1.run(TaskRunner.java:276)
> at java.lang.Thread.run(Thread.java:744)
> {noformat}
> The above query is from TestJoinQuery.testComplexJoinCondition7() test case.
> Currently TestJoinQuery runs with a parameterized option, but the parameter
> is not transmitted to UnitRequestImpl. So all test case run with HashJoin
> parameter. For this reason the above error is not detected. We should also
> fix the test case bug.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)