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 2015/02/27 19:46:59 UTC
svn commit: r1662788 - in /pig/trunk: CHANGES.txt
src/org/apache/pig/builtin/VALUELIST.java
src/org/apache/pig/builtin/VALUESET.java
test/org/apache/pig/test/TestBuiltin.java
Author: daijy
Date: Fri Feb 27 18:46:59 2015
New Revision: 1662788
URL: http://svn.apache.org/r1662788
Log:
PIG-4432: Built-in VALUELIST and VALUESET UDFs do not preserve the schema when the map value type is a complex type
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/builtin/VALUELIST.java
pig/trunk/src/org/apache/pig/builtin/VALUESET.java
pig/trunk/test/org/apache/pig/test/TestBuiltin.java
Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1662788&r1=1662787&r2=1662788&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Fri Feb 27 18:46:59 2015
@@ -50,6 +50,9 @@ PIG-4333: Split BigData tests into multi
BUG FIXES
+PIG-4432: Built-in VALUELIST and VALUESET UDFs do not preserve the schema when the map value type is
+ a complex type (erwaman via daijy)
+
PIG-4412: Race condition in writing multiple outputs from STREAM op (jwills via daijy)
PIG-4408: Merge join should support replicated join as a predecessor (bridiver via daijy)
Modified: pig/trunk/src/org/apache/pig/builtin/VALUELIST.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/VALUELIST.java?rev=1662788&r1=1662787&r2=1662788&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/VALUELIST.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/VALUELIST.java Fri Feb 27 18:46:59 2015
@@ -105,7 +105,7 @@ public class VALUELIST extends EvalFunc<
throw new RuntimeException(fe);
}
if(fs != null) {
- innerFieldSchema = new Schema.FieldSchema(null, fs.type);
+ innerFieldSchema = new Schema.FieldSchema(fs);
}
} else {
innerFieldSchema = new Schema.FieldSchema(null, DataType.BYTEARRAY);
Modified: pig/trunk/src/org/apache/pig/builtin/VALUESET.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/VALUESET.java?rev=1662788&r1=1662787&r2=1662788&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/VALUESET.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/VALUESET.java Fri Feb 27 18:46:59 2015
@@ -118,7 +118,7 @@ public class VALUESET extends EvalFunc<D
throw new RuntimeException(fe);
}
if (fs != null) {
- innerFieldSchema = new Schema.FieldSchema(null, fs.type);
+ innerFieldSchema = new Schema.FieldSchema(fs);
}
} else {
innerFieldSchema = new Schema.FieldSchema(null, DataType.BYTEARRAY);
Modified: pig/trunk/test/org/apache/pig/test/TestBuiltin.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestBuiltin.java?rev=1662788&r1=1662787&r2=1662788&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestBuiltin.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestBuiltin.java Fri Feb 27 18:46:59 2015
@@ -2933,6 +2933,22 @@ public class TestBuiltin {
assertEquals(resultList.get(1), "hadoop");
}
+ /**
+ * Tests that VALUESET preserves the schema when the map's value type is complex.
+ */
+ @Test
+ public void testValueSetOutputSchemaComplexType() throws FrontendException {
+ Schema inputSchema = new Schema();
+ Schema bagSchema = Schema.generateNestedSchema(DataType.BAG, DataType.CHARARRAY);
+ FieldSchema mapSchema = new FieldSchema(null, bagSchema, DataType.MAP);
+ inputSchema.add(mapSchema);
+
+ Schema expectedSchema = new Schema(new FieldSchema(null, bagSchema, DataType.BAG));
+
+ VALUESET vs = new VALUESET();
+ assertEquals(expectedSchema, vs.outputSchema(inputSchema));
+ }
+
@SuppressWarnings("unchecked")
@Test
public void testValueList() throws Exception {
@@ -2958,6 +2974,21 @@ public class TestBuiltin {
assertEquals((String)resultList.get(2), "hadoop");
}
+ /**
+ * Tests that VALUELIST preserves the schema when the map's value type is complex.
+ */
+ @Test
+ public void testValueListOutputSchemaComplexType() throws FrontendException {
+ Schema inputSchema = new Schema();
+ Schema bagSchema = Schema.generateNestedSchema(DataType.BAG, DataType.CHARARRAY);
+ FieldSchema mapSchema = new FieldSchema(null, bagSchema, DataType.MAP);
+ inputSchema.add(mapSchema);
+
+ Schema expectedSchema = new Schema(new FieldSchema(null, bagSchema, DataType.BAG));
+
+ VALUELIST vl = new VALUELIST();
+ assertEquals(expectedSchema, vl.outputSchema(inputSchema));
+ }
@SuppressWarnings("unchecked")
@Test