[ 
https://issues.apache.org/jira/browse/HIVE-13570?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15252754#comment-15252754
 ] 

Yongzhi Chen commented on HIVE-13570:
-------------------------------------

[~ctang.ma], could you review the fix? genColLists(curOp, child) seems to have 
some limitations, it assumes Union all's parent have equal or greater number of 
columns and matching positions. But it is not always true especially after 
parent operator processed. So the fix use getColLists(child) to get the 
UnionAll 's 
prunelist.  Thanks

> Some query with Union all fails when CBO is off
> -----------------------------------------------
>
>                 Key: HIVE-13570
>                 URL: https://issues.apache.org/jira/browse/HIVE-13570
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 2.0.0
>            Reporter: Yongzhi Chen
>            Assignee: Yongzhi Chen
>         Attachments: HIVE-13570.1.PATCH
>
>
> Some queries with union all throws IndexOutOfBoundsException
> when:
> set hive.cbo.enable=false;
> set hive.ppd.remove.duplicatefilters=true;
> The stack is as:
> {noformat}
> java.lang.IndexOutOfBoundsException: Index: 67, Size: 67 
>         at java.util.ArrayList.rangeCheck(ArrayList.java:635) 
>         at java.util.ArrayList.get(ArrayList.java:411) 
>         at 
> org.apache.hadoop.hive.ql.optimizer.ColumnPrunerProcCtx.genColLists(ColumnPrunerProcCtx.java:161)
>  
>         at 
> org.apache.hadoop.hive.ql.optimizer.ColumnPrunerProcCtx.handleFilterUnionChildren(ColumnPrunerProcCtx.java:273)
>  
>         at 
> org.apache.hadoop.hive.ql.optimizer.ColumnPrunerProcFactory$ColumnPrunerFilterProc.process(ColumnPrunerProcFactory.java:108)
>  
>         at 
> org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:90)
>  
>         at 
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:94)
>  
>         at 
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:78)
>  
>         at 
> org.apache.hadoop.hive.ql.optimizer.ColumnPruner$ColumnPrunerWalker.walk(ColumnPruner.java:172)
>  
>         at 
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:109)
>  
>         at 
> org.apache.hadoop.hive.ql.optimizer.ColumnPruner.transform(ColumnPruner.java:135)
>  
>         at 
> org.apache.hadoop.hive.ql.optimizer.Optimizer.optimize(Optimizer.java:198) 
>         at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:10327)
>  
>         at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:192)
>  
>         at 
> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:222)
>  
>         at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:432) 
>         at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:305) 
>         at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1119) 
>         at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1167) 
>         at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1055) 
>         at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1045) 
>         at 
> org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:207) 
>         at 
> org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:159) 
>         at 
> org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:370) 
>         at 
> org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:305) 
>         at 
> org.apache.hadoop.hive.cli.CliDriver.processReader(CliDriver.java:403) 
>         at 
> org.apache.hadoop.hive.cli.CliDriver.processFile(CliDriver.java:419) 
>         at 
> org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:708) 
>         at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675) 
>         at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615) 
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to