You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Selina Zhang (JIRA)" <ji...@apache.org> on 2015/05/15 23:17:01 UTC

[jira] [Created] (HIVE-10729) Query failed when join on an element in complex type (tez map join only)

Selina Zhang created HIVE-10729:
-----------------------------------

             Summary: Query failed when join on an element in complex type (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
         Environment: 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  on src.key = foo.a[1];
{code.sql}
Query will fail with stacktrace
{code}
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
{code}

Similar error when join on a map key:
{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.value=test.b[2];
{code.sql}


            Reporter: Selina Zhang
            Assignee: Selina Zhang






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