[jira] [Commented] (HIVE-24060) When the CBO is false, NPE is thrown by an EXCEPT or INTERSECT execution
[ https://issues.apache.org/jira/browse/HIVE-24060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17199373#comment-17199373 ] GuangMing Lu commented on HIVE-24060: - Hey [~dengzh] Such is the case, but hive-1.2.1 is available, which leads to incompatibility problems for some users, whether we need to consider it > When the CBO is false, NPE is thrown by an EXCEPT or INTERSECT execution > > > Key: HIVE-24060 > URL: https://issues.apache.org/jira/browse/HIVE-24060 > Project: Hive > Issue Type: Bug > Components: CBO, Hive >Affects Versions: 3.1.0, 3.1.2 >Reporter: GuangMing Lu >Priority: Major > > {code:java} > set hive.cbo.enable=false; > create table testtable(idx string, namex string) stored as orc; > insert into testtable values('123', 'aaa'), ('234', 'bbb'); > explain select a.idx from (select idx,namex from testtable intersect select > idx,namex from testtable) a > {code} > The execution throws a NullPointException: > {code:java} > 2020-08-24 15:12:24,261 | WARN | HiveServer2-Handler-Pool: Thread-345 | > Error executing statement: | > org.apache.hive.service.cli.thrift.ThriftCLIService.executeNewStatement(ThriftCLIService.java:1155) > org.apache.hive.service.cli.HiveSQLException: Error while compiling > statement: FAILED: NullPointerException null > at > org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:341) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:215) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.operation.SQLOperation.runInternal(SQLOperation.java:316) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.operation.Operation.run(Operation.java:253) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal(HiveSessionImpl.java:684) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync(HiveSessionImpl.java:670) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.CLIService.executeStatementAsync(CLIService.java:342) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.thrift.ThriftCLIService.executeNewStatement(ThriftCLIService.java:1144) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:1280) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1557) > ~[hive-service-rpc-3.1.0.jar:3.1.0] > at > org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1542) > ~[hive-service-rpc-3.1.0.jar:3.1.0] > at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) > ~[libthrift-0.9.3.jar:0.9.3] > at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) > ~[libthrift-0.9.3.jar:0.9.3] > at > org.apache.hadoop.hive.metastore.security.HadoopThriftAuthBridge$Server$TUGIAssumingProcessor.process(HadoopThriftAuthBridge.java:648) > ~[hive-standalone-metastore-3.1.0.jar:3.1.0] > at > org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:286) > ~[libthrift-0.9.3.jar:0.9.3] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > ~[?:1.8.0_201] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > ~[?:1.8.0_201] > at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201] > Caused by: java.lang.NullPointerException > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genSelectPlan(SemanticAnalyzer.java:4367) > ~[hive-exec-3.1.0.jar:3.1.0] > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genSelectPlan(SemanticAnalyzer.java:4346) > ~[hive-exec-3.1.0.jar:3.1.0] > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPostGroupByBodyPlan(SemanticAnalyzer.java:10576) > ~[hive-exec-3.1.0.jar:3.1.0] > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genBodyPlan(SemanticAnalyzer.java:10515) > ~[hive-exec-3.1.0.jar:3.1.0] > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:11434) > ~[hive-exec-3.1.0.jar:3.1.0] > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:11291) > ~[hive-exec-3.1.0.jar:3.1.0] > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:11318) > ~[hive-exec-3.1.0.jar:3.1.0] > at >
[jira] [Commented] (HIVE-24060) When the CBO is false, NPE is thrown by an EXCEPT or INTERSECT execution
[ https://issues.apache.org/jira/browse/HIVE-24060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17192808#comment-17192808 ] Zhihua Deng commented on HIVE-24060: The intersect and except are now only available through CBO. The issue may due to the method genPlan(QB, QBExpr) returns null when the Opcode is INTERSECT. > When the CBO is false, NPE is thrown by an EXCEPT or INTERSECT execution > > > Key: HIVE-24060 > URL: https://issues.apache.org/jira/browse/HIVE-24060 > Project: Hive > Issue Type: Bug > Components: CBO, Hive >Affects Versions: 3.1.0, 3.1.2 >Reporter: GuangMing Lu >Priority: Major > > {code:java} > set hive.cbo.enable=false; > create table testtable(idx string, namex string) stored as orc; > insert into testtable values('123', 'aaa'), ('234', 'bbb'); > explain select a.idx from (select idx,namex from testtable intersect select > idx,namex from testtable) a > {code} > The execution throws a NullPointException: > {code:java} > 2020-08-24 15:12:24,261 | WARN | HiveServer2-Handler-Pool: Thread-345 | > Error executing statement: | > org.apache.hive.service.cli.thrift.ThriftCLIService.executeNewStatement(ThriftCLIService.java:1155) > org.apache.hive.service.cli.HiveSQLException: Error while compiling > statement: FAILED: NullPointerException null > at > org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:341) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:215) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.operation.SQLOperation.runInternal(SQLOperation.java:316) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.operation.Operation.run(Operation.java:253) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal(HiveSessionImpl.java:684) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync(HiveSessionImpl.java:670) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.CLIService.executeStatementAsync(CLIService.java:342) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.thrift.ThriftCLIService.executeNewStatement(ThriftCLIService.java:1144) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:1280) > ~[hive-service-3.1.0.jar:3.1.0] > at > org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1557) > ~[hive-service-rpc-3.1.0.jar:3.1.0] > at > org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1542) > ~[hive-service-rpc-3.1.0.jar:3.1.0] > at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) > ~[libthrift-0.9.3.jar:0.9.3] > at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) > ~[libthrift-0.9.3.jar:0.9.3] > at > org.apache.hadoop.hive.metastore.security.HadoopThriftAuthBridge$Server$TUGIAssumingProcessor.process(HadoopThriftAuthBridge.java:648) > ~[hive-standalone-metastore-3.1.0.jar:3.1.0] > at > org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:286) > ~[libthrift-0.9.3.jar:0.9.3] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > ~[?:1.8.0_201] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > ~[?:1.8.0_201] > at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201] > Caused by: java.lang.NullPointerException > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genSelectPlan(SemanticAnalyzer.java:4367) > ~[hive-exec-3.1.0.jar:3.1.0] > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genSelectPlan(SemanticAnalyzer.java:4346) > ~[hive-exec-3.1.0.jar:3.1.0] > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPostGroupByBodyPlan(SemanticAnalyzer.java:10576) > ~[hive-exec-3.1.0.jar:3.1.0] > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genBodyPlan(SemanticAnalyzer.java:10515) > ~[hive-exec-3.1.0.jar:3.1.0] > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:11434) > ~[hive-exec-3.1.0.jar:3.1.0] > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:11291) > ~[hive-exec-3.1.0.jar:3.1.0] > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:11318) > ~[hive-exec-3.1.0.jar:3.1.0] > at >