You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "Quanlong Huang (Jira)" <ji...@apache.org> on 2019/08/24 08:21:00 UTC

[jira] [Assigned] (IMPALA-8718) Incorrect AnalysisException with outer join complex type column

     [ https://issues.apache.org/jira/browse/IMPALA-8718?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Quanlong Huang reassigned IMPALA-8718:
--------------------------------------

    Assignee: Quanlong Huang  (was: Yongzhi Chen)

> Incorrect AnalysisException with outer join complex type column
> ---------------------------------------------------------------
>
>                 Key: IMPALA-8718
>                 URL: https://issues.apache.org/jira/browse/IMPALA-8718
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Frontend
>    Affects Versions: Impala 2.10.0
>            Reporter: Tamas Mate
>            Assignee: Quanlong Huang
>            Priority: Major
>
> Although user is not explicitly specifying {{IS}} {{NOT NULL}} predicate the query fails with:
> {code:java}
> org.apache.impala.common.AnalysisException: IS NOT NULL predicate does not support complex types: col3 IS NOT NULL.
> {code}
> When a complex type is on the right hand side of the join it is [wrapped|https://github.com/apache/impala/blob/master/fe/src/main/java/org/apache/impala/planner/SingleNodePlanner.java#L1114] by IsNullPredicate, as it could be null at the end of the join. Which is caught by this [condition|https://github.com/apache/impala/blob/master/fe/src/main/java/org/apache/impala/analysis/IsNullPredicate.java#L124] later. The following exception is thrown:
> {code:java}
> I0620 04:11:29.498865 474227 jni-util.cc:211] java.lang.IllegalStateException: org.apache.impala.common.AnalysisException: IS NOT NULL predicate does not support complex types: col3 IS NOT NULL
>   at org.apache.impala.analysis.Expr.analyzeNoThrow(Expr.java:362)
>   at org.apache.impala.analysis.TupleIsNullPredicate.requiresNullWrapping(TupleIsNullPredicate.java:158)
>   at org.apache.impala.analysis.TupleIsNullPredicate.wrapExpr(TupleIsNullPredicate.java:133)
>   at org.apache.impala.analysis.TupleIsNullPredicate.wrapExprs(TupleIsNullPredicate.java:122)
>   at org.apache.impala.planner.SingleNodePlanner.createInlineViewPlan(SingleNodePlanner.java:1042)
>   at org.apache.impala.planner.SingleNodePlanner.createTableRefNode(SingleNodePlanner.java:1454)
>   at org.apache.impala.planner.SingleNodePlanner.createTableRefsPlan(SingleNodePlanner.java:778)
>   at org.apache.impala.planner.SingleNodePlanner.createSelectPlan(SingleNodePlanner.java:616)
>   at org.apache.impala.planner.SingleNodePlanner.createQueryPlan(SingleNodePlanner.java:259)
>   at org.apache.impala.planner.SingleNodePlanner.createSingleNodePlan(SingleNodePlanner.java:149)
>   at org.apache.impala.planner.Planner.createPlan(Planner.java:98)
>   at org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1005)
>   at org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1101)
>   at org.apache.impala.service.JniFrontend.createExecRequest(JniFrontend.java:156)
> Caused by: org.apache.impala.common.AnalysisException: IS NOT NULL predicate does not support complex types: col3 IS NOT NULL
>   at org.apache.impala.analysis.IsNullPredicate.analyzeImpl(IsNullPredicate.java:127)
>   at org.apache.impala.analysis.Expr.analyze(Expr.java:343)
>   at org.apache.impala.analysis.Expr.analyzeNoThrow(Expr.java:360)
>   ... 13 more
> {code}
> I believe the nullable is necessary, but the error message for this condition is incorrect. The issue can be reproduced with the following queries.
> {code:java}
> create table sample_test_1 
> (col1 string,
> col2 string,
> col3 array<struct<col31:string,col32:int>>);
> create table sample_test_2 
> (col1 string,
> col2 string);
> with leftSide as
> (
> select col1
>   from sample_test_2
> ),
> rightSide as
> (
> select t.col1,
>        rank() over(order by t.col1) as rnk
>   from sample_test_1 t
>       left outer join t.col3
> )
> select *
>   from leftSide l
>        left join rightSide r
>                on l.col1 = r.col1
> {code}
> cc.: [~ychena]



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org