You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by rd...@apache.org on 2011/03/07 21:06:31 UTC
svn commit: r1078915 - in /pig/trunk: CHANGES.txt
src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/AccumulatorOptimizer.java
test/org/apache/pig/test/TestAccumulator.java
Author: rding
Date: Mon Mar 7 20:06:30 2011
New Revision: 1078915
URL: http://svn.apache.org/viewvc?rev=1078915&view=rev
Log:
PIG-1837: Error while using IsEmpty function
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/AccumulatorOptimizer.java
pig/trunk/test/org/apache/pig/test/TestAccumulator.java
Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1078915&r1=1078914&r2=1078915&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Mon Mar 7 20:06:30 2011
@@ -102,6 +102,8 @@ PIG-1696: Performance: Use System.arrayc
BUG FIXES
+PIG-1837: Error while using IsEmpty function (rding)
+
PIG-1884: Change ReadToEndLoader.setLocation not throw UnsupportedOperationException (thejas)
PIG-1887: Fix pig-withouthadoop.jar to contains proper jars (daijy)
Modified: pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/AccumulatorOptimizer.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/AccumulatorOptimizer.java?rev=1078915&r1=1078914&r2=1078915&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/AccumulatorOptimizer.java (original)
+++ pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/AccumulatorOptimizer.java Mon Mar 7 20:06:30 2011
@@ -257,8 +257,8 @@ public class AccumulatorOptimizer extend
}
if (po instanceof POBinCond) {
- return checkUDFInput(((POBinCond)po).getLhs()) ||
- checkUDFInput(((POBinCond)po).getRhs()) || checkUDFInput(((POBinCond)po).getCond());
+ return checkUDFInput(((POBinCond)po).getLhs()) &&
+ checkUDFInput(((POBinCond)po).getRhs()) && checkUDFInput(((POBinCond)po).getCond());
}
if (po instanceof POSortedDistinct) {
Modified: pig/trunk/test/org/apache/pig/test/TestAccumulator.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestAccumulator.java?rev=1078915&r1=1078914&r2=1078915&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestAccumulator.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestAccumulator.java Mon Mar 7 20:06:30 2011
@@ -578,5 +578,40 @@ public class TestAccumulator extends Tes
}
}
+ @Test // PIG-1837
+ public void testBinCondCheck() throws Exception {
+ PrintWriter w = new PrintWriter(new FileWriter("data1"));
+ w.println("1\t11");
+ w.println("2\t15");
+ w.close();
+
+ Util.copyFromLocalToCluster(cluster, "data1", "data1");
+
+ w = new PrintWriter(new FileWriter("data2"));
+ w.println("1\t10");
+ w.println("4\t11");
+ w.println("5\t10");
+ w.close();
+
+ Util.copyFromLocalToCluster(cluster, "data2", "data2");
+
+ pigServer.registerQuery("A = load 'data1' as (x:int, y:int);");
+ pigServer.registerQuery("B = load 'data2' as (x:int, z:int);");
+ pigServer.registerQuery("C = cogroup A by x, B by x;");
+ pigServer.registerQuery("D = foreach C generate group, SUM((IsEmpty(A.y) ? {(0)} : A.y)) + SUM((IsEmpty(B.z) ? {(0)} : B.z));");
+
+ HashMap<Integer, Long> expected = new HashMap<Integer, Long>();
+ expected.put(1, 21l);
+ expected.put(2, 15l);
+ expected.put(4, 11l);
+ expected.put(5, 10l);
+
+ Iterator<Tuple> iter = pigServer.openIterator("D");
+ while(iter.hasNext()) {
+ Tuple t = iter.next();
+ assertEquals(expected.get((Integer)t.get(0)), (Long)t.get(1));
+ }
+ }
+
}