You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ch...@apache.org on 2015/10/08 18:09:17 UTC

svn commit: r1707576 - in /pig/trunk: CHANGES.txt src/org/apache/pig/impl/streaming/PigStreamingUDF.java test/org/apache/pig/impl/streaming/TestPigStreamingUDF.java

Author: cheolsoo
Date: Thu Oct  8 16:09:15 2015
New Revision: 1707576

URL: http://svn.apache.org/viewvc?rev=1707576&view=rev
Log:
PIG-4696: Empty map returned by a streaming_python udf wrongly contains a null key (cheolsoo)

Modified:
    pig/trunk/CHANGES.txt
    pig/trunk/src/org/apache/pig/impl/streaming/PigStreamingUDF.java
    pig/trunk/test/org/apache/pig/impl/streaming/TestPigStreamingUDF.java

Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1707576&r1=1707575&r2=1707576&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Thu Oct  8 16:09:15 2015
@@ -49,6 +49,8 @@ PIG-4639: Add better parser for Apache H
 
 BUG FIXES
 
+PIG-4696: Empty map returned by a streaming_python udf wrongly contains a null key (cheolsoo)
+
 PIG-4691: [Pig on Tez] Support for whitelisting storefuncs for union optimization (rohini)
 
 PIG-3957: Refactor out resetting input key in TezDagBuilder (rohini)

Modified: pig/trunk/src/org/apache/pig/impl/streaming/PigStreamingUDF.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/impl/streaming/PigStreamingUDF.java?rev=1707576&r1=1707575&r2=1707576&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/impl/streaming/PigStreamingUDF.java (original)
+++ pig/trunk/src/org/apache/pig/impl/streaming/PigStreamingUDF.java Thu Oct  8 16:09:15 2015
@@ -202,7 +202,7 @@ public class PigStreamingUDF extends Pig
 
             if (StreamingDelimiters.isDelimiter(DELIMS.getFieldDelim(), buf, index, depth, endIndex)) {
                 val = extractString(buf, fieldStart, index - 1, true);
-                map.put(key, val);
+                if (key != null) map.put(key, val);
                 fieldStart = index + 3;
             }
         }

Modified: pig/trunk/test/org/apache/pig/impl/streaming/TestPigStreamingUDF.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/impl/streaming/TestPigStreamingUDF.java?rev=1707576&r1=1707575&r2=1707576&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/impl/streaming/TestPigStreamingUDF.java (original)
+++ pig/trunk/test/org/apache/pig/impl/streaming/TestPigStreamingUDF.java Thu Oct  8 16:09:15 2015
@@ -369,6 +369,18 @@ public class TestPigStreamingUDF {
     }
     
     @Test
+    public void testDeserialize__emptyMap() throws IOException {
+        byte[] input = "|[_|]_|_".getBytes();
+        FieldSchema fs = new FieldSchema("", DataType.MAP);
+        PigStreamingUDF sp = new PigStreamingUDF(fs);
+
+        Map<String, String> expectedOutput = new TreeMap<String, String>();
+
+        Object out = sp.deserialize(input, 0, input.length);
+        Assert.assertEquals(tf.newTuple(expectedOutput), out);
+    }
+
+    @Test
     public void testDeserialize__bug() throws Exception {
         byte[] input = "|(_|-_|,_32|,_987654321098765432|,_987654321098765432|)_|_".getBytes();