[ https://issues.apache.org/jira/browse/HIVE-1287?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14502354#comment-14502354 ]
Ruslan Dautkhanov commented on HIVE-1287: ----------------------------------------- @Zheng, I don't get how implicit casting from struct<a:string> to struct<b:string> can cause data corruption. It would be great to see this fixed in a future Hive release. > Struct datatype should not use field names for type equivalence. > ---------------------------------------------------------------- > > Key: HIVE-1287 > URL: https://issues.apache.org/jira/browse/HIVE-1287 > Project: Hive > Issue Type: Bug > Components: Query Processor > Environment: Mac OS X (10.6.2) Java SE 6 ( 1.6.0_17) > Reporter: Arvind Prabhakar > > The field names for {{Struct}} types are currently being matched for testing > type equivalence. This is readily seen by running the following example: > {noformat} > hive> create table source ( foo struct < x : string > ); > OK > Time taken: 3.094 seconds > hive> load data local inpath '/path/to/sample/data.txt' overwrite into table > source; > Copying data from file:/path/to/sample/data.txt > Loading data to table source > OK > Time taken: 0.593 seconds > hive> create table sink ( bar struct < y : string >); > OK > Time taken: 0.11 seconds > hive> insert overwrite table sink select foo from source; > FAILED: Error in semantic analysis: line 1:23 Cannot insert into target table > because column number/types are different sink: Cannot convert column 0 > from struct<x:string> to struct<y:string>. > {noformat} > Since both {{soruce.foo}} and {{sink.bar}} are similar in definition with > only field names being different, data movement between these two should be > allowed. -- This message was sent by Atlassian JIRA (v6.3.4#6332)