You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by kh...@apache.org on 2013/08/17 02:42:17 UTC
svn commit: r1514929 - in /hive/trunk/hcatalog/core/src:
main/java/org/apache/hcatalog/data/schema/HCatSchema.java
test/java/org/apache/hcatalog/data/schema/TestHCatSchema.java
Author: khorgath
Date: Sat Aug 17 00:42:16 2013
New Revision: 1514929
URL: http://svn.apache.org/r1514929
Log:
HIVE-5105 HCatSchema.remove(HCatFieldSchema hcatFieldSchema) does not clean up fieldPositionMap (Eugene Koifman via Sushanth Sowmyan)
Modified:
hive/trunk/hcatalog/core/src/main/java/org/apache/hcatalog/data/schema/HCatSchema.java
hive/trunk/hcatalog/core/src/test/java/org/apache/hcatalog/data/schema/TestHCatSchema.java
Modified: hive/trunk/hcatalog/core/src/main/java/org/apache/hcatalog/data/schema/HCatSchema.java
URL: http://svn.apache.org/viewvc/hive/trunk/hcatalog/core/src/main/java/org/apache/hcatalog/data/schema/HCatSchema.java?rev=1514929&r1=1514928&r2=1514929&view=diff
==============================================================================
--- hive/trunk/hcatalog/core/src/main/java/org/apache/hcatalog/data/schema/HCatSchema.java (original)
+++ hive/trunk/hcatalog/core/src/main/java/org/apache/hcatalog/data/schema/HCatSchema.java Sat Aug 17 00:42:16 2013
@@ -36,6 +36,7 @@ public class HCatSchema implements Seria
private static final long serialVersionUID = 1L;
private final List<HCatFieldSchema> fieldSchemas;
+ //HCatFieldSchema.getName()->position
private final Map<String, Integer> fieldPositionMap;
private final List<String> fieldNames;
@@ -118,7 +119,7 @@ public class HCatSchema implements Seria
}
fieldSchemas.remove(hcatFieldSchema);
- fieldPositionMap.remove(hcatFieldSchema);
+ fieldPositionMap.remove(hcatFieldSchema.getName());
fieldNames.remove(hcatFieldSchema.getName());
}
Modified: hive/trunk/hcatalog/core/src/test/java/org/apache/hcatalog/data/schema/TestHCatSchema.java
URL: http://svn.apache.org/viewvc/hive/trunk/hcatalog/core/src/test/java/org/apache/hcatalog/data/schema/TestHCatSchema.java?rev=1514929&r1=1514928&r2=1514929&view=diff
==============================================================================
--- hive/trunk/hcatalog/core/src/test/java/org/apache/hcatalog/data/schema/TestHCatSchema.java (original)
+++ hive/trunk/hcatalog/core/src/test/java/org/apache/hcatalog/data/schema/TestHCatSchema.java Sat Aug 17 00:42:16 2013
@@ -76,4 +76,21 @@ public class TestHCatSchema extends Test
assertTrue(iae.getMessage().contains("Field named memberID already exists"));
}
}
+ public void testRemoveAddField() throws HCatException {
+ List<HCatFieldSchema> fieldSchemaList = new ArrayList<HCatFieldSchema>();
+
+ fieldSchemaList.add(new HCatFieldSchema("memberID", HCatFieldSchema.Type.INT, "as a number"));
+ HCatFieldSchema locationField = new HCatFieldSchema("location", HCatFieldSchema.Type.STRING, "there's Waldo");
+ fieldSchemaList.add(locationField);
+ HCatSchema schema = new HCatSchema(fieldSchemaList);
+ schema.remove(locationField);
+ Integer position = schema.getPosition(locationField.getName());
+ assertTrue("position is not null after remove" , position == null);
+ try {
+ schema.append(locationField);
+ }
+ catch (HCatException ex) {
+ assertFalse(ex.getMessage(), true);
+ }
+ }
}