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

Naveen Gangam commented on HIVE-10808:
--------------------------------------

This issue can be reproduced very consistently in Hive 0.13 (Havent tried hive 
0.14) using the following reproducer.
{code}
create table test_part (a int) partitioned by (num int, part2 int);
alter table test_part add partition (num=201501, part2=0);
alter table test_part add partition (num=201501, part2=1);
alter table test_part add partition (num=201501, part2=2);
select num from test_part a inner join (select max (num) as dt from test_part 
where num<201501) b on a.num=b.dt;
{code}
Its important that the table/partition has no data in it.

The stacktrace appears in the hive.log. I have verfied that the fix in the 
proposed patch resolves the issue. In Hive 1.1+, I cannot reproduce this issue. 
Some other fix is either masking the issue or bypassing it. 
Inspecting the code, I think the issue is a bit obvious. Would this be enough 
to have this committed? Thanks

> Inner join on Null throwing Cast Exception
> ------------------------------------------
>
>                 Key: HIVE-10808
>                 URL: https://issues.apache.org/jira/browse/HIVE-10808
>             Project: Hive
>          Issue Type: Bug
>          Components: HiveServer2
>    Affects Versions: 0.13.1
>            Reporter: Naveen Gangam
>            Assignee: Naveen Gangam
>            Priority: Critical
>         Attachments: HIVE-10808.patch
>
>
> select
>     > a.col1,
>     > a.col2,
>     > a.col3,
>     > a.col4
>     > from
>     > tab1 a
>     > inner join
>     > (
>     > select
>     > max(x) as x
>     > from
>     > tab1
>     > where
>     > x < 20130327
>     > ) r
>     > on
>     > a.x = r.x
>     > where
>     > a.col1 = 'F'
>     > and a.col3 in ('A', 'S', 'G');
> Failed Task log snippet:
> 2015-05-18 19:22:17,372 INFO [main] 
> org.apache.hadoop.hive.ql.exec.mr.ObjectCache: Ignoring retrieval request: 
> __MAP_PLAN__
> 2015-05-18 19:22:17,372 INFO [main] 
> org.apache.hadoop.hive.ql.exec.mr.ObjectCache: Ignoring cache key: 
> __MAP_PLAN__
> 2015-05-18 19:22:17,457 WARN [main] org.apache.hadoop.mapred.YarnChild: 
> Exception running child : java.lang.RuntimeException: Error in configuring 
> object
> at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:109)
> at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:75)
> at 
> org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133)
> at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:446)
> at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
> at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:415)
> at 
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1642)
> at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)
> Caused by: java.lang.reflect.InvocationTargetException
> 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.ReflectionUtils.setJobConf(ReflectionUtils.java:106)
> ... 9 more
> Caused by: java.lang.RuntimeException: Error in configuring object
> at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:109)
> at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:75)
> at 
> org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133)
> at org.apache.hadoop.mapred.MapRunner.configure(MapRunner.java:38)
> ... 14 more
> Caused by: java.lang.reflect.InvocationTargetException
> 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.ReflectionUtils.setJobConf(ReflectionUtils.java:106)
> ... 17 more
> Caused by: java.lang.RuntimeException: Map operator initialization failed
> at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.configure(ExecMapper.java:157)
> ... 22 more
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: 
> java.lang.ClassCastException: 
> org.apache.hadoop.hive.serde2.NullStructSerDe$NullStructSerDeObjectInspector 
> cannot be cast to 
> org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector
> at 
> org.apache.hadoop.hive.ql.exec.MapOperator.getConvertedOI(MapOperator.java:334)
> at 
> org.apache.hadoop.hive.ql.exec.MapOperator.setChildren(MapOperator.java:352)
> at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.configure(ExecMapper.java:126)
> ... 22 more
> Caused by: java.lang.ClassCastException: 
> org.apache.hadoop.hive.serde2.NullStructSerDe$NullStructSerDeObjectInspector 
> cannot be cast to 
> org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector
> at 
> org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils.isInstanceOfSettableOI(ObjectInspectorUtils.java:1111)
> at 
> org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils.hasAllFieldsSettable(ObjectInspectorUtils.java:1149)
> at 
> org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorConverters.getConvertedOI(ObjectInspectorConverters.java:219)
> at 
> org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorConverters.getConvertedOI(ObjectInspectorConverters.java:183)
> at 
> org.apache.hadoop.hive.ql.exec.MapOperator.getConvertedOI(MapOperator.java:316)



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

Reply via email to