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

Matt McCline commented on HIVE-10308:
-------------------------------------

I see the problem.  The Vectorizer class has in fact correclty validated that 
all data types used in the query are ok.  The test (thank you) above does not 
reference the MAP data type.

However, in the initializeOp method of VectorReduceSinkOperator, we convert the 
input object inspector inputObjInspector\[0\] to vector expression row writers 
and that inspector includes the MAP data type.

{noformat}
inputObjInspectors[0] a:INT, b:MAP
{noformat}

We use the ReduceSinkOperator as a super type and it is expecting a standard 
row object that looks like inputObjInspector\[0\].

So, need to rethink how we are creating the vector expression row writers here.

I'm assigning this to me since I wrote the recent addition to 
VectorReduceSinkOperator initializeOp that is producing the problem.  We are 
missing some negative tests here, too.



> Vectorization execution throws java.lang.IllegalArgumentException: 
> Unsupported complex type: MAP
> ------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-10308
>                 URL: https://issues.apache.org/jira/browse/HIVE-10308
>             Project: Hive
>          Issue Type: Bug
>          Components: Vectorization
>    Affects Versions: 0.14.0, 0.13.1, 1.2.0, 1.1.0
>            Reporter: Selina Zhang
>            Assignee: Selina Zhang
>         Attachments: HIVE-10308.1.patch
>
>
> Steps to reproduce:
> --------------------
> CREATE TABLE test_orc (a INT, b MAP<INT, STRING>) STORED AS ORC;
> INSERT OVERWRITE TABLE test_orc SELECT 1, MAP(1, "one", 2, "two") FROM src 
> LIMIT 1;
> CREATE TABLE test(key INT) ;
> INSERT OVERWRITE TABLE test SELECT 1 FROM src LIMIT 1;
> set hive.vectorized.execution.enabled=true;
> set hive.auto.convert.join=false;
> select l.key from test l left outer join test_orc r on (l.key= r.a) where r.a 
> is not null;
> Stack trace:
> --------------------
> Caused by: java.lang.IllegalArgumentException: Unsupported complex type: MAP
>       at 
> org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpressionWriterFactory.genVectorExpressionWritable(VectorExpressionWriterFactory.java:456)
>       at 
> org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpressionWriterFactory.processVectorInspector(VectorExpressionWriterFactory.java:1191)
>       at 
> org.apache.hadoop.hive.ql.exec.vector.VectorReduceSinkOperator.initializeOp(VectorReduceSinkOperator.java:58)
>       at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:362)
>       at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:481)
>       at 
> org.apache.hadoop.hive.ql.exec.Operator.initializeChildren(Operator.java:438)
>       at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:375)
>       at 
> org.apache.hadoop.hive.ql.exec.MapOperator.initializeMapOperator(MapOperator.java:442)
>       at 
> org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.init(MapRecordProcessor.java:198)



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

Reply via email to