Author: daijy
Date: Tue Mar 1 22:48:04 2016
New Revision: 1733180
URL: http://svn.apache.org/viewvc?rev=1733180&view=rev
Log:
PIG-4816: Read a null scalar causing a Tez failure
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=1733180&r1=1733179&r2=1733180&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Tue Mar 1 22:48:04 2016
@@ -97,6 +97,8 @@ PIG-4639: Add better parser for Apache H
BUG FIXES
+PIG-4816: Read a null scalar causing a Tez failure (daijy)
+
PIG-4818: Single quote inside comment in GENERATE is not being ignored
(knoguchi)
PIG-4814: AvroStorage does not take namenode HA as part of schema file url
(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=1733180&r1=1733179&r2=1733180&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
Tue Mar 1 22:48:04 2016
@@ -67,9 +67,10 @@ public class ReadScalarsTez extends Eval
public void attachInputs(Map<String, LogicalInput> inputs,
Configuration conf) throws ExecException {
String cacheKey = "scalar-" + inputKey;
- Object cacheValue = ObjectCache.getInstance().retrieve(cacheKey);
- if (cacheValue != null) {
- t = (Tuple) cacheValue;
+ String cacheKeyPresent = "scalar-present" + inputKey;
+
+ if (ObjectCache.getInstance().retrieve(cacheKeyPresent) != null) {
+ t = (Tuple)ObjectCache.getInstance().retrieve(cacheKey);
return;
}
input = inputs.get(inputKey);
@@ -95,6 +96,7 @@ public class ReadScalarsTez extends Eval
} catch (Exception e) {
throw new ExecException(e);
}
+ ObjectCache.getInstance().cache(cacheKeyPresent, Boolean.TRUE);
ObjectCache.getInstance().cache(cacheKey, t);
log.info("Cached scalar in Tez ObjectRegistry with vertex scope.
cachekey=" + cacheKey);
}
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=1733180&r1=1733179&r2=1733180&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestScalarAliasesLocal.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestScalarAliasesLocal.java Tue Mar 1
22:48:04 2016
@@ -578,4 +578,19 @@ public class TestScalarAliasesLocal {
}
+ @Test
+ public void testScalarNullValue2() throws Exception{
+ Storage.Data data = Storage.resetData(pigServer);
+ data.set("input", Storage.tuple("a", 1), Storage.tuple("b", 2));
+
+ pigServer.registerQuery("A = load 'input' using mock.Storage() as
(a:chararray, b:int);");
+ pigServer.registerQuery("B = FILTER A by a == 'c';");
+ pigServer.registerQuery("C = GROUP B ALL;");
+ pigServer.registerQuery("D = FOREACH C GENERATE COUNT(B.b) as count;");
+ pigServer.registerQuery("E = FOREACH A GENERATE (D.count IS NOT NULL?
D.count : 0l);;");
+
+ Iterator<Tuple> iter = pigServer.openIterator("E");
+ Tuple t = iter.next();
+ assertTrue(t.toString().equals("(0)"));
+ }
}