[
https://issues.apache.org/jira/browse/HIVE-4211?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daisy.Yuan updated HIVE-4211:
-----------------------------
Attachment: HIVE-4211.patch
> Common column and partition column are defined the same type and union them,
> it will hints Schema of both sides of union should match.
> ---------------------------------------------------------------------------------------------------------------------------------------
>
> Key: HIVE-4211
> URL: https://issues.apache.org/jira/browse/HIVE-4211
> Project: Hive
> Issue Type: Bug
> Components: SQL
> Affects Versions: 0.9.0, 0.11.0
> Reporter: Daisy.Yuan
> Labels: patch
> Attachments: HIVE-4211.patch, PartitionColumnTypInfo.patch
>
>
> create table UnionBoolA (id boolean, no boolean) row format delimited fields
> terminated by ' ';
> load data local inpath '/opt/files/unionboola.txt' into table UnionBoolA;
> create table UnionPartionBool (id int) partitioned by (no boolean) row format
> delimited fields terminated by ' ';
> load data local inpath '/opt/files/unionpartint.txt' into table
> UnionPartionBool partition(no=true);
> unionboola.txt:
> true true
> false true
> true true
> false true
> unionpartint.txt:
> 111
> 444
> 1122
> 44
> when I execute
> "select * from( select no from UnionBoolA union all select no from
> UnionPartionBool) unionResult", it is failed. The exception info is as
> follows:
> FAILED: Error in semantic analysis: 1:66 Schema of both sides of union should
> match: Column no is of type boolean on first table and type string on second
> table. Error encountered near token 'UnionPartionBool'
> org.apache.hadoop.hive.ql.parse.SemanticException: 1:66 Schema of both sides
> of union should match: Column no is of type boolean on first table and type
> string on second table. Error encountered near token 'UnionPartionBool'
> at
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genUnionPlan(SemanticAnalyzer.java:6295)
> at
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:6733)
> at
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:6748)
> at
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:7556)
> at
> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:244)
> at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:621)
> at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:525)
> at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1153)
> at
> org.apache.hadoop.hive.service.HiveServer$HiveServerHandler.execute(HiveServer.java:226)
> at
> org.apache.hadoop.hive.service.ThriftHive$Processor$execute.getResult(ThriftHive.java:630)
> at
> org.apache.hadoop.hive.service.ThriftHive$Processor$execute.getResult(ThriftHive.java:618)
> at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32)
> at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34)
> at
> org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge20S$Server$TUGIAssumingProcessor$1.run(HadoopThriftAuthBridge20S.java:535)
> at
> org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge20S$Server$TUGIAssumingProcessor$1.run(HadoopThriftAuthBridge20S.java:532)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:396)
> at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1232)
> at
> org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge20S$Server$TUGIAssumingProcessor.process(HadoopThriftAuthBridge20S.java:532)
> at
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:176)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:662)
> So I execute "explain select no from UnionPartionBool" to see the partition
> column, and find the partition column type is string.
> And all the partition column type is changed to be
> TypeInfoFactory.stringTypeInfo. It is in
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genTablePlan(). And it is
> todo task. Now I modify it to be
> TypeInfoFactory.getPrimitiveTypeInfo(part_col.getType()).It can fix this bug.
> And you can see what I modified in the patch.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira