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