[ https://issues.apache.org/jira/browse/HIVE-10729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15213366#comment-15213366 ]
Matt McCline commented on HIVE-10729: ------------------------------------- The problem is the Vectorization class was not checking data types in the small table expression. > Query failed when select complex columns from joinned table (tez map join > only) > ------------------------------------------------------------------------------- > > Key: HIVE-10729 > URL: https://issues.apache.org/jira/browse/HIVE-10729 > Project: Hive > Issue Type: Bug > Components: Query Processor > Affects Versions: 1.2.0 > Reporter: Selina Zhang > Assignee: Matt McCline > Attachments: HIVE-10729.03.patch, HIVE-10729.04.patch, > HIVE-10729.1.patch, HIVE-10729.2.patch > > > When map join happens, if projection columns include complex data types, > query will fail. > Steps to reproduce: > {code:sql} > hive> set hive.auto.convert.join; > hive.auto.convert.join=true > hive> desc foo; > a array<int> > hive> select * from foo; > [1,2] > hive> desc src_int; > key int > value string > hive> select * from src_int where key=2; > 2 val_2 > hive> select * from foo join src_int src on src.key = foo.a[1]; > {code} > Query will fail with stack trace > {noformat} > Caused by: java.lang.ClassCastException: > org.apache.hadoop.hive.serde2.lazybinary.LazyBinaryArray cannot be cast to > [Ljava.lang.Object; > at > org.apache.hadoop.hive.serde2.objectinspector.StandardListObjectInspector.getList(StandardListObjectInspector.java:111) > at > org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serialize(LazySimpleSerDe.java:314) > at > org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.serializeField(LazySimpleSerDe.java:262) > at > org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.doSerialize(LazySimpleSerDe.java:246) > at > org.apache.hadoop.hive.serde2.AbstractEncodingAwareSerDe.serialize(AbstractEncodingAwareSerDe.java:50) > at > org.apache.hadoop.hive.ql.exec.FileSinkOperator.process(FileSinkOperator.java:692) > at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:837) > at > org.apache.hadoop.hive.ql.exec.SelectOperator.process(SelectOperator.java:88) > at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:837) > at > org.apache.hadoop.hive.ql.exec.CommonJoinOperator.internalForward(CommonJoinOperator.java:644) > at > org.apache.hadoop.hive.ql.exec.CommonJoinOperator.genAllOneUniqueJoinObject(CommonJoinOperator.java:676) > at > org.apache.hadoop.hive.ql.exec.CommonJoinOperator.checkAndGenObject(CommonJoinOperator.java:754) > at > org.apache.hadoop.hive.ql.exec.MapJoinOperator.process(MapJoinOperator.java:386) > ... 23 more > {noformat} > Similar error when projection columns include a map: > {code:sql} > hive> CREATE TABLE test (a INT, b MAP<INT, STRING>) STORED AS ORC; > hive> INSERT OVERWRITE TABLE test SELECT 1, MAP(1, "val_1", 2, "val_2") FROM > src LIMIT 1; > hive> select * from src join test where src.key=test.a; > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)