[ 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)