Author: rohini
Date: Fri Apr  3 20:18:15 2015
New Revision: 1671155

URL: http://svn.apache.org/r1671155
Log:
PIG-4497: [Pig on Tez] NPE for null scalar (rohini)

Modified:
    pig/trunk/CHANGES.txt
    
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/plan/udf/ReadScalarsTez.java
    pig/trunk/test/org/apache/pig/test/TestScalarAliasesLocal.java

Modified: pig/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1671155&r1=1671154&r2=1671155&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Fri Apr  3 20:18:15 2015
@@ -58,6 +58,8 @@ PIG-4333: Split BigData tests into multi
  
 BUG FIXES
 
+PIG-4497: [Pig on Tez] NPE for null scalar (rohini)
+
 PIG-4493: Pig on Tez gives wrong results if Union is followed by Split (rohini)
 
 PIG-4491: Streaming Python Bytearray Bugs (jeremykarn via daijy)

Modified: 
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/plan/udf/ReadScalarsTez.java
URL: 
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/plan/udf/ReadScalarsTez.java?rev=1671155&r1=1671154&r2=1671155&view=diff
==============================================================================
--- 
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/plan/udf/ReadScalarsTez.java
 (original)
+++ 
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/tez/plan/udf/ReadScalarsTez.java
 Fri Apr  3 20:18:15 2015
@@ -100,6 +100,9 @@ public class ReadScalarsTez extends Eval
 
     @Override
     public Object exec(Tuple input) throws IOException {
+        if (t == null) {
+            return null;
+        }
         int pos = (Integer) input.get(0);
         Object obj = t.get(pos);
         return obj;

Modified: pig/trunk/test/org/apache/pig/test/TestScalarAliasesLocal.java
URL: 
http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestScalarAliasesLocal.java?rev=1671155&r1=1671154&r2=1671155&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestScalarAliasesLocal.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestScalarAliasesLocal.java Fri Apr  3 
20:18:15 2015
@@ -25,8 +25,10 @@ import static org.junit.Assert.fail;
 import java.io.File;
 import java.io.IOException;
 import java.util.Iterator;
+import java.util.List;
 
 import org.apache.pig.PigServer;
+import org.apache.pig.builtin.mock.Storage;
 import org.apache.pig.data.BagFactory;
 import org.apache.pig.data.Tuple;
 import org.apache.pig.data.TupleFactory;
@@ -556,4 +558,24 @@ public class TestScalarAliasesLocal {
         );
     }
 
+    @Test
+    public void testScalarNullValue() throws Exception{
+        Storage.Data data = Storage.resetData(pigServer);
+        data.set("input", Storage.tuple("a", 1), Storage.tuple("b", 2));
+
+        pigServer.setBatchOn();
+        pigServer.registerQuery("A = load 'input' using mock.Storage() as 
(a:chararray, b:int);");
+        pigServer.registerQuery("B = FILTER A by a == 'c';");
+        pigServer.registerQuery("C = FOREACH A generate a, b + B.b;");
+        pigServer.registerQuery("store C into 'output' using mock.Storage();");
+
+        pigServer.executeBatch();
+
+        List<Tuple> actualResults = data.get("output");
+        List<Tuple> expectedResults = Util.getTuplesFromConstantTupleStrings(
+                new String[] {"('a', null)", "('b', null)"});
+        Util.checkQueryOutputsAfterSort(actualResults.iterator(), 
expectedResults);
+
+    }
+
 }


Reply via email to