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);
+
+ }
+
}