You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jd...@apache.org on 2014/10/15 04:05:57 UTC

svn commit: r1631932 - in /hive/trunk: hcatalog/core/src/test/java/org/apache/hive/hcatalog/data/schema/TestHCatSchemaUtils.java serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/StructTypeInfo.java

Author: jdere
Date: Wed Oct 15 02:05:57 2014
New Revision: 1631932

URL: http://svn.apache.org/r1631932
Log:
HIVE-8386: HCAT api call is case sensitive on fields in struct column (Jason Dere, reviewed by Sushanth Sowmyan)

Modified:
    hive/trunk/hcatalog/core/src/test/java/org/apache/hive/hcatalog/data/schema/TestHCatSchemaUtils.java
    hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/StructTypeInfo.java

Modified: hive/trunk/hcatalog/core/src/test/java/org/apache/hive/hcatalog/data/schema/TestHCatSchemaUtils.java
URL: http://svn.apache.org/viewvc/hive/trunk/hcatalog/core/src/test/java/org/apache/hive/hcatalog/data/schema/TestHCatSchemaUtils.java?rev=1631932&r1=1631931&r2=1631932&view=diff
==============================================================================
--- hive/trunk/hcatalog/core/src/test/java/org/apache/hive/hcatalog/data/schema/TestHCatSchemaUtils.java (original)
+++ hive/trunk/hcatalog/core/src/test/java/org/apache/hive/hcatalog/data/schema/TestHCatSchemaUtils.java Wed Oct 15 02:05:57 2014
@@ -35,10 +35,10 @@ public class TestHCatSchemaUtils extends
 
   public void testSimpleOperation() throws Exception {
     String typeString = "struct<name:string,studentid:int,"
-        + "contact:struct<phno:string,email:string>,"
+        + "contact:struct<phNo:string,email:string>,"
         + "currently_registered_courses:array<string>,"
         + "current_grades:map<string,string>,"
-        + "phnos:array<struct<phno:string,type:string>>,blah:array<int>>";
+        + "phNos:array<struct<phNo:string,type:string>>,blah:array<int>>";
 
     TypeInfo ti = TypeInfoUtils.getTypeInfoFromTypeString(typeString);
 
@@ -46,8 +46,9 @@ public class TestHCatSchemaUtils extends
     LOG.info("Type name : {}", ti.getTypeName());
     LOG.info("HCatSchema : {}", hsch);
     assertEquals(hsch.size(), 1);
-    assertEquals(ti.getTypeName(), hsch.get(0).getTypeString());
-    assertEquals(hsch.get(0).getTypeString(), typeString);
+    // Looks like HCatFieldSchema.getTypeString() lower-cases its results
+    assertEquals(ti.getTypeName().toLowerCase(), hsch.get(0).getTypeString());
+    assertEquals(hsch.get(0).getTypeString(), typeString.toLowerCase());
   }
 
   @SuppressWarnings("unused")

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/StructTypeInfo.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/StructTypeInfo.java?rev=1631932&r1=1631931&r2=1631932&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/StructTypeInfo.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/StructTypeInfo.java Wed Oct 15 02:05:57 2014
@@ -102,7 +102,7 @@ public final class StructTypeInfo extend
   public TypeInfo getStructFieldTypeInfo(String field) {
     String fieldLowerCase = field.toLowerCase();
     for (int i = 0; i < allStructFieldNames.size(); i++) {
-      if (fieldLowerCase.equals(allStructFieldNames.get(i))) {
+      if (fieldLowerCase.equalsIgnoreCase(allStructFieldNames.get(i))) {
         return allStructFieldTypeInfos.get(i);
       }
     }