[ 
https://issues.apache.org/jira/browse/TAJO-1574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14514120#comment-14514120
 ] 

ASF GitHub Bot commented on TAJO-1574:
--------------------------------------

Github user jihoonson commented on a diff in the pull request:

    https://github.com/apache/tajo/pull/548#discussion_r29145724
  
    --- Diff: 
tajo-core/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java ---
    @@ -1191,4 +1192,16 @@ public final void testJoinWithOrPredicates() throws 
Exception {
         assertResultSet(res);
         cleanupQuery(res);
       }
    +
    +  @Test
    +  public final void testNaturalJoin() throws Exception {
    +    ResultSet res = null;
    +    try {
    +      res = executeQuery();
    +    } catch (Exception e) {
    --- End diff --
    
    This catch block is redundant because the testNaturalJoin method throws 
Exception. I'll remove it before commit.


> Fix NPE on natural join
> -----------------------
>
>                 Key: TAJO-1574
>                 URL: https://issues.apache.org/jira/browse/TAJO-1574
>             Project: Tajo
>          Issue Type: Bug
>    Affects Versions: 0.10.0
>            Reporter: Dongjoon Hyun
>            Assignee: Dongjoon Hyun
>            Priority: Minor
>         Attachments: TAJO-1574.Hyun.150421.0.patch.txt
>
>
> NPE occurs in a natural join.
> {code}
> default> create table t(a int);
> default> insert overwrite into t select 1;
> default> create table s(a int);
> default> insert overwrite into s select 1;
> default> select * from t natural join s;
> {code}
> The main reason is *joinQual* is null.
> {code}
>    public RESULT visitJoin(CONTEXT ctx, Stack<Expr> stack, Join expr) throws 
> PlanningException {
>      stack.push(expr);
> -    visit(ctx, stack, expr.getQual());
> +    if (expr.getQual() != null) {
> +      visit(ctx, stack, expr.getQual());
> +    }
> {code}
> {code}
> -    join.joinQual = (Expr) joinQual.clone();
> +    if (joinQual != null) {
> +      join.joinQual = (Expr) joinQual.clone();
> +    }
> {code}
> After fix, we need to get the following result.
> {code}
> default> select * from t natural join s;
> Progress: 100%, response time: 0.293 sec
> a,  a
> -------------------------------
> 1,  1
> (1 rows, 0.293 sec, 4 B selected)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to