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