[
https://issues.apache.org/jira/browse/HIVE-405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12699338#action_12699338
]
Steve Corona commented on HIVE-405:
-----------------------------------
It is my understanding that this will also fix the problem of joining on
map-type columns.
Ex.
SELECT foobar.foo,
foobar.mapcolumn['bar']
FROM foobar
JOIN barfoo ON ( foobar.mapcolumn['bar'] = barfoo.bleh )
Will result the following exception thrown in the reduce phase:
java.io.IOException: org.apache.hadoop.hive.ql.metadata.HiveException:
java.lang.RuntimeException: Hive 2 Internal error: cannot evaluate index
expression on string
at
org.apache.hadoop.hive.ql.exec.ExecReducer.reduce(ExecReducer.java:169)
at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:430)
at org.apache.hadoop.mapred.Child.main(Child.java:155)
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException:
java.lang.RuntimeException: Hive 2 Internal error: cannot evaluate index
expression on string
at
org.apache.hadoop.hive.ql.exec.GroupByOperator.process(GroupByOperator.java:451)
at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:315)
at
org.apache.hadoop.hive.ql.exec.JoinOperator.createForwardJoinObject(JoinOperator.java:259)
at
org.apache.hadoop.hive.ql.exec.JoinOperator.genObject(JoinOperator.java:502)
at
org.apache.hadoop.hive.ql.exec.JoinOperator.genObject(JoinOperator.java:491)
at
org.apache.hadoop.hive.ql.exec.JoinOperator.genObject(JoinOperator.java:491)
at
org.apache.hadoop.hive.ql.exec.JoinOperator.genObject(JoinOperator.java:491)
at
org.apache.hadoop.hive.ql.exec.JoinOperator.checkAndGenObject(JoinOperator.java:532)
at
org.apache.hadoop.hive.ql.exec.JoinOperator.endGroup(JoinOperator.java:514)
at
org.apache.hadoop.hive.ql.exec.ExecReducer.reduce(ExecReducer.java:140)
... 2 more
Caused by: java.lang.RuntimeException: Hive 2 Internal error: cannot evaluate
index expression on string
at
org.apache.hadoop.hive.ql.exec.ExprNodeIndexEvaluator.evaluate(ExprNodeIndexEvaluator.java:64)
at
org.apache.hadoop.hive.ql.exec.ExprNodeFuncEvaluator.evaluate(ExprNodeFuncEvaluator.java:72)
at
org.apache.hadoop.hive.ql.exec.ExprNodeFuncEvaluator.evaluate(ExprNodeFuncEvaluator.java:72)
at
org.apache.hadoop.hive.ql.exec.ExprNodeFuncEvaluator.evaluate(ExprNodeFuncEvaluator.java:72)
at
org.apache.hadoop.hive.ql.exec.GroupByOperator.updateAggregations(GroupByOperator.java:370)
at
org.apache.hadoop.hive.ql.exec.GroupByOperator.processHashAggr(GroupByOperator.java:470)
at
org.apache.hadoop.hive.ql.exec.GroupByOperator.process(GroupByOperator.java:445)
... 11 more
> Operators should pass ObjectInspector in init instead of forward
> ----------------------------------------------------------------
>
> Key: HIVE-405
> URL: https://issues.apache.org/jira/browse/HIVE-405
> Project: Hadoop Hive
> Issue Type: Bug
> Components: Query Processor
> Affects Versions: 0.4.0
> Reporter: Zheng Shao
> Priority: Critical
>
> We are always passing the same ObjectInspector, so there is no need to pass
> it again and again in forward.
> Also there is a problem that can ONLY be fixed by passing ObjectInspector in
> init: Outer Joins - Outer Joins may not be able to get ObjectInspectors for
> all inputs, as a result, there is no way to construct an output
> ObjectInspector based on the inputs. Currently we have hard-coded code that
> assumes joins are always outputting Strings, which did break but was hidden
> by the old framework (because we do toString() when serializing the output,
> and toString() is defined for all Java Classes).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.