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