[
https://issues.apache.org/jira/browse/HIVE-10512?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jesus Camacho Rodriguez updated HIVE-10512:
-------------------------------------------
Attachment: HIVE-10512.patch
[~ashutoshc], could you take a look? The problem was that we were storing all
operators in aliasToOpInfo DS in the Join descriptors, leading to orphan
operators when some other optimization would replace them. This patch fixes the
problem by only adding the operators that are actually needed, as it is done by
SemanticAnalyzer. Thanks
> CBO (Calcite Return Path): SMBJoin conversion throws ClassCastException
> -----------------------------------------------------------------------
>
> Key: HIVE-10512
> URL: https://issues.apache.org/jira/browse/HIVE-10512
> Project: Hive
> Issue Type: Sub-task
> Components: CBO
> Reporter: Jesus Camacho Rodriguez
> Assignee: Jesus Camacho Rodriguez
> Fix For: 1.2.0
>
> Attachments: HIVE-10512.patch
>
>
> When return path is on, SMB conversion is throwing an Exception in some cases.
> The problem can be reproduced with auto_join32.q. The Exception with the
> following stacktrace is thrown:
> {noformat}
> java.lang.ClassCastException: org.apache.hadoop.hive.ql.exec.FilterOperator
> cannot be cast to org.apache.hadoop.hive.ql.exec.TableScanOperator
> at
> org.apache.hadoop.hive.ql.parse.TableAccessAnalyzer.genRootTableScan(TableAccessAnalyzer.java:243)
> at
> org.apache.hadoop.hive.ql.optimizer.AbstractBucketJoinProc.checkConvertBucketMapJoin(AbstractBucketJoinProc.java:226)
> at
> org.apache.hadoop.hive.ql.optimizer.AbstractSMBJoinProc.canConvertJoinToBucketMapJoin(AbstractSMBJoinProc.java:497)
> at
> org.apache.hadoop.hive.ql.optimizer.AbstractSMBJoinProc.canConvertJoinToSMBJoin(AbstractSMBJoinProc.java:414)
> at
> org.apache.hadoop.hive.ql.optimizer.SortedMergeJoinProc.process(SortedMergeJoinProc.java:45)
> at
> org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:90)
> at
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:95)
> at
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:79)
> at
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.walk(DefaultGraphWalker.java:133)
> at
> org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.startWalking(DefaultGraphWalker.java:110)
> at
> org.apache.hadoop.hive.ql.optimizer.SortedMergeBucketMapJoinOptimizer.transform(SortedMergeBucketMapJoinOptimizer.java:109)
> at
> org.apache.hadoop.hive.ql.optimizer.Optimizer.optimize(Optimizer.java:201)
> at
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:10071)
> at
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:204)
> at
> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:225)
> at
> org.apache.hadoop.hive.ql.parse.ExplainSemanticAnalyzer.analyzeInternal(ExplainSemanticAnalyzer.java:74)
> at
> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:225)
> ...
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)