You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by da...@apache.org on 2011/02/28 20:24:34 UTC
svn commit: r1075496 - in /pig/trunk: CHANGES.txt
contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/AvroStorageUtils.java
contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/avro/TestAvroStorageUtils.java
Author: daijy
Date: Mon Feb 28 19:24:34 2011
New Revision: 1075496
URL: http://svn.apache.org/viewvc?rev=1075496&view=rev
Log:
PIG-1872: Fix bug in AvroStorage
Modified:
pig/trunk/CHANGES.txt
pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/AvroStorageUtils.java
pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/avro/TestAvroStorageUtils.java
Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1075496&r1=1075495&r2=1075496&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Mon Feb 28 19:24:34 2011
@@ -100,6 +100,8 @@ PIG-1696: Performance: Use System.arrayc
BUG FIXES
+PIG-1872: Fix bug in AvroStorage (guolin2001, jghoman via daijy)
+
PIG-1536: use same logic for merging inner schemas in "default union" and
"union onschema" (daijy)
Modified: pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/AvroStorageUtils.java
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/AvroStorageUtils.java?rev=1075496&r1=1075495&r2=1075496&view=diff
==============================================================================
--- pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/AvroStorageUtils.java (original)
+++ pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/storage/avro/AvroStorageUtils.java Mon Feb 28 19:24:34 2011
@@ -211,6 +211,10 @@ public class AvroStorageUtils {
if (containsRecursiveRecord(fs, definedRecordNames))
return true;
}
+
+ /* remove its own name from the name set */
+ definedRecordNames.remove(s.getName());
+
return false;
}
Modified: pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/avro/TestAvroStorageUtils.java
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/avro/TestAvroStorageUtils.java?rev=1075496&r1=1075495&r2=1075496&view=diff
==============================================================================
--- pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/avro/TestAvroStorageUtils.java (original)
+++ pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/storage/avro/TestAvroStorageUtils.java Mon Feb 28 19:24:34 2011
@@ -48,12 +48,28 @@ public class TestAvroStorageUtils {
final String str3 ="[\"null\", " + str2 + "]";
s = Schema.parse(str3);
assertTrue(AvroStorageUtils.containsRecursiveRecord(s));
+
}
@Test
public void canIdentifyNonRecursiveRecords() throws IOException {
final String non = RECORD_BEGINNING + "{ \"name\": \"next\", \"type\": [\"null\", \"string\"] } ] }";
assertFalse(AvroStorageUtils.containsRecursiveRecord(Schema.parse(non)));
+
+ final String s1 =
+ "{ \"type\":\"record\", \"name\":\"Event\", " +
+ "\"fields\":[ " +
+ "{\"name\":\"f1\", " +
+ "\"type\":{ \"type\":\"record\",\"name\":\"Entity\", " +
+ "\"fields\":[{\"name\":\"type\", \"type\": \"string\"}," +
+ "{\"name\":\"value\",\"type\": \"int\"}] " +
+ "} }, " +
+ " {\"name\":\"f2\",\"type\": \"Entity\"}, " +
+ " {\"name\":\"f3\",\"type\": \"Entity\"} " +
+ "] }";
+ Schema schema1 = Schema.parse(s1);
+ assertFalse(AvroStorageUtils.containsRecursiveRecord(schema1));
+
}
@Test