[ https://issues.apache.org/jira/browse/HIVE-19850?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ashutosh Chauhan updated HIVE-19850: ------------------------------------ Resolution: Fixed Fix Version/s: 4.0.0 Status: Resolved (was: Patch Available) Pushed to master. Thanks, Ganesha! > Dynamic partition pruning in Tez is leading to 'No work found for tablescan' > error > ---------------------------------------------------------------------------------- > > Key: HIVE-19850 > URL: https://issues.apache.org/jira/browse/HIVE-19850 > Project: Hive > Issue Type: Bug > Components: Tez > Affects Versions: 3.0.0 > Reporter: Ganesha Shreedhara > Assignee: Ganesha Shreedhara > Priority: Major > Fix For: 4.0.0 > > Attachments: HIVE-19850.patch > > > > When multiple views are used along with union all, it is resulting in the > following error when dynamic partition pruning is enabled in tez. > > {code:java} > Exception in thread "main" java.lang.AssertionError: No work found for > tablescan TS[8] > at > org.apache.hadoop.hive.ql.parse.GenTezUtils.processAppMasterEvent(GenTezUtils.java:408) > at > org.apache.hadoop.hive.ql.parse.TezCompiler.generateTaskTree(TezCompiler.java:383) > at > org.apache.hadoop.hive.ql.parse.TaskCompiler.compile(TaskCompiler.java:205) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:10371) > at > org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:208) > at > org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:239) > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:479) > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:347) > at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1203) > at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1257) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1140) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1130) > at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:258) > at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:204) > at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:433) > at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:894) > at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:825) > at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:726) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at org.apache.hadoop.util.RunJar.run(RunJar.java:223) > at org.apache.hadoop.util.RunJar.main(RunJar.java:136){code} > > *Steps to reproduce:* > set hive.execution.engine=tez; > set hive.tez.dynamic.partition.pruning=true; > CREATE TABLE t1(key string, value string, c_int int, c_float float, c_boolean > boolean) partitioned by (dt string); > CREATE TABLE t2(key string, value string, c_int int, c_float float, c_boolean > boolean) partitioned by (dt string); > CREATE TABLE t3(key string, value string, c_int int, c_float float, c_boolean > boolean) partitioned by (dt string); > > insert into table t1 partition(dt='2018') values ('k1','v1',1,1.0,true); > insert into table t2 partition(dt='2018') values ('k2','v2',2,2.0,true); > insert into table t3 partition(dt='2018') values ('k3','v3',3,3.0,true); > > CREATE VIEW `view1` AS select > `t1`.`key`,`t1`.`value`,`t1`.`c_int`,`t1`.`c_float`,`t1`.`c_boolean`,`t1`.`dt` > from `t1` union all select > `t2`.`key`,`t2`.`value`,`t2`.`c_int`,`t2`.`c_float`,`t2`.`c_boolean`,`t2`.`dt` > from `t2`; > CREATE VIEW `view2` AS select > `t2`.`key`,`t2`.`value`,`t2`.`c_int`,`t2`.`c_float`,`t2`.`c_boolean`,`t2`.`dt` > from `t2` union all select > `t3`.`key`,`t3`.`value`,`t3`.`c_int`,`t3`.`c_float`,`t3`.`c_boolean`,`t3`.`dt` > from `t3`; > create table t4 as select key,value,c_int,c_float,c_boolean,dt from t1 union > all select v1.key,v1.value,v1.c_int,v1.c_float,v1.c_boolean,v1.dt from view1 > v1 join view2 v2 on v1.dt=v2.dt; > CREATE VIEW `view3` AS select > `t4`.`key`,`t4`.`value`,`t4`.`c_int`,`t4`.`c_float`,`t4`.`c_boolean`,`t4`.`dt` > from `t4` union all select > `t1`.`key`,`t1`.`value`,`t1`.`c_int`,`t1`.`c_float`,`t1`.`c_boolean`,`t1`.`dt` > from `t1`; > > select count(0) from view2 v2 join view3 v3 on v2.dt=v3.dt; // Throws No work > found for tablescan error -- This message was sent by Atlassian JIRA (v7.6.3#76005)