[
https://issues.apache.org/jira/browse/HIVE-22787?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Krisztian Kasa resolved HIVE-22787.
-----------------------------------
Release Note:
Fixing CBO makes this unnecessary.
Reopen if CBO=off path should be supported.
Resolution: Won't Fix
> NPE when compiling query contains intersect all
> -----------------------------------------------
>
> Key: HIVE-22787
> URL: https://issues.apache.org/jira/browse/HIVE-22787
> Project: Hive
> Issue Type: Bug
> Components: Query Planning
> Reporter: Krisztian Kasa
> Assignee: Krisztian Kasa
> Priority: Major
>
> The query contains INTERSECT ALL operator and one of its operands has an
> OUTER JOIN like:
> {code}
> SELECT ... FROM t1 RIGHT OUTER JOIN t2 ON ...
> INTERSECT ALL
> SELECT ...
> {code}
> In this case both AST trees (before and after calcite) has a TOK_INTERSECTALL
> node and it is not handled
> when generating the plan in
> {code}
> org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
> private Operator genPlan(QB parent, QBExpr qbexpr) throws SemanticException {
> if (qbexpr.getOpcode() == QBExpr.Opcode.NULLOP) {
> boolean skipAmbiguityCheck = viewSelect == null &&
> parent.isTopLevelSelectStarQuery();
> return genPlan(qbexpr.getQB(), skipAmbiguityCheck);
> }
> if (qbexpr.getOpcode() == QBExpr.Opcode.UNION) {
> Operator qbexpr1Ops = genPlan(parent, qbexpr.getQBExpr1());
> Operator qbexpr2Ops = genPlan(parent, qbexpr.getQBExpr2());
> return genUnionPlan(qbexpr.getAlias(), qbexpr.getQBExpr1().getAlias(),
> qbexpr1Ops, qbexpr.getQBExpr2().getAlias(), qbexpr2Ops);
> }
> return null;
> }{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)