[ https://issues.apache.org/jira/browse/HIVE-1271?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Arvind Prabhakar updated HIVE-1271: ----------------------------------- Status: Patch Available (was: Open) *Summary* The implementation of {{equals()}} method of {{StructTypeInfo}} was comparing field names as part of the comparison. This is not valid since field namess do not contitute the definition of a type. This patch refactors the {{TypedInfo}} hierarchy to address this issue. *Implementation Details* - Modified the {{TypedInfo}} and removed its implementation of the {{equals()}} method. - Modified all specialized subclasses to make them {{final}}. - Modified all subclass implementation of {{equals()}} to skip category comparison. - Modified {{StructTypeInfo}} implementation of {{equals()}} to not compare field names. *Testing Done* - Built and tested the usecase identified in this issue. It works now. - Ran full set of tests. Out of these two tests - clientpositive for input20.q and input33.q failed for unrelated reasons (these tests are failing on the trunk as well). All other tests passed. > Case sensitiveness of type information specified when using custom reducer > causes type mismatch > ----------------------------------------------------------------------------------------------- > > Key: HIVE-1271 > URL: https://issues.apache.org/jira/browse/HIVE-1271 > Project: Hadoop Hive > Issue Type: Bug > Components: Query Processor > Affects Versions: 0.5.0 > Reporter: Dilip Joseph > Assignee: Arvind Prabhakar > Attachments: HIVE-1271.patch > > > Type information specified while using a custom reduce script is converted > to lower case, and causes type mismatch during query semantic analysis . The > following REDUCE query where field name = "userId" failed. > hive> CREATE TABLE SS ( > > a INT, > > b INT, > > vals ARRAY<STRUCT<userId:INT, y:STRING>> > > ); > OK > hive> FROM (select * from srcTable DISTRIBUTE BY id SORT BY id) s > > INSERT OVERWRITE TABLE SS > > REDUCE * > > USING 'myreduce.py' > > AS > > (a INT, > > b INT, > > vals ARRAY<STRUCT<userId:INT, y:STRING>> > > ) > > ; > FAILED: Error in semantic analysis: line 2:27 Cannot insert into > target table because column number/types are different SS: Cannot > convert column 2 from array<struct<userId:int,y:string>> to > array<struct<userid:int,y:string>>. > The same query worked fine after changing "userId" to "userid". -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.