You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by da...@apache.org on 2013/11/13 20:40:34 UTC

svn commit: r1541675 - in /pig/branches/branch-0.12: ./ src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/ src/org/apache/pig/data/ test/org/apache/pig/test/

Author: daijy
Date: Wed Nov 13 19:40:34 2013
New Revision: 1541675

URL: http://svn.apache.org/r1541675
Log:
PIG-3570: Rollback PIG-3060

Modified:
    pig/branches/branch-0.12/CHANGES.txt
    pig/branches/branch-0.12/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POForEach.java
    pig/branches/branch-0.12/src/org/apache/pig/data/DefaultAbstractBag.java
    pig/branches/branch-0.12/test/org/apache/pig/test/TestEvalPipelineLocal.java

Modified: pig/branches/branch-0.12/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.12/CHANGES.txt?rev=1541675&r1=1541674&r2=1541675&view=diff
==============================================================================
--- pig/branches/branch-0.12/CHANGES.txt (original)
+++ pig/branches/branch-0.12/CHANGES.txt Wed Nov 13 19:40:34 2013
@@ -32,6 +32,8 @@ PIG-3480: TFile-based tmpfile compressio
 
 BUG FIXES
 
+PIG-3570: Rollback PIG-3060 (daijy)
+
 PIG-3530: Some e2e tests is broken due to PIG-3480 (daijy)
 
 PIG-3492: ColumnPrune dropping used column due to LogicalRelationalOperator.fixDuplicateUids changes not propagating (knoguchi via daijy)

Modified: pig/branches/branch-0.12/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POForEach.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.12/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POForEach.java?rev=1541675&r1=1541674&r2=1541675&view=diff
==============================================================================
--- pig/branches/branch-0.12/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POForEach.java (original)
+++ pig/branches/branch-0.12/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/relationalOperators/POForEach.java Wed Nov 13 19:40:34 2013
@@ -441,12 +441,12 @@ public class POForEach extends PhysicalO
                         if(its[i].hasNext()) {
                             data[i] = its[i].next();
                         } else {
-                            //the input set is null, so we return with EOP.  This is
+                            //the input set is null, so we return.  This is
                             // caught above and this function recalled with
                             // new inputs.
                             its = null;
                             data = null;
-                            res.returnStatus = POStatus.STATUS_EOP;
+                            res.returnStatus = POStatus.STATUS_NULL;
                             return res;
                         }
                     } else {

Modified: pig/branches/branch-0.12/src/org/apache/pig/data/DefaultAbstractBag.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.12/src/org/apache/pig/data/DefaultAbstractBag.java?rev=1541675&r1=1541674&r2=1541675&view=diff
==============================================================================
--- pig/branches/branch-0.12/src/org/apache/pig/data/DefaultAbstractBag.java (original)
+++ pig/branches/branch-0.12/src/org/apache/pig/data/DefaultAbstractBag.java Wed Nov 13 19:40:34 2013
@@ -97,7 +97,7 @@ public abstract class DefaultAbstractBag
             }
             for (int i = sampled; iter.hasNext() && sampled < SPILL_SAMPLE_SIZE; i++) {
                 Tuple t = iter.next();
-                if (i % SPILL_SAMPLE_FREQUENCY == 0) {
+                if (t != null && i % SPILL_SAMPLE_FREQUENCY == 0) {
                     aggSampleTupleSize += t.getMemorySize();
                     sampled += 1;
                 }

Modified: pig/branches/branch-0.12/test/org/apache/pig/test/TestEvalPipelineLocal.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.12/test/org/apache/pig/test/TestEvalPipelineLocal.java?rev=1541675&r1=1541674&r2=1541675&view=diff
==============================================================================
--- pig/branches/branch-0.12/test/org/apache/pig/test/TestEvalPipelineLocal.java (original)
+++ pig/branches/branch-0.12/test/org/apache/pig/test/TestEvalPipelineLocal.java Wed Nov 13 19:40:34 2013
@@ -1173,4 +1173,34 @@ public class TestEvalPipelineLocal {
         
         Assert.assertFalse(iter.hasNext());
     }
+    static public class GenBag extends EvalFunc<DataBag> {
+        @Override
+        public DataBag exec(Tuple input) throws IOException {
+            Integer content = (Integer)input.get(0);
+            DataBag bag = BagFactory.getInstance().newDefaultBag();
+
+            if (content > 10) {
+                Tuple t = TupleFactory.getInstance().newTuple();
+                t.append(content);
+                bag.add(t);
+            }
+            return bag;
+        }
+    }
+    // Two flatten statement in a pipeline, see PIG-3292
+    @Test
+    public void testFlattenTwice() throws Exception{
+        File f1 = createFile(new String[]{"{(1),(12),(9)}", "{(15),(2)}"});
+        
+        pigServer.registerQuery("a = load '" + Util.encodeEscape(Util.generateURI(f1.toString(), pigServer.getPigContext()))
+                + "' as (bag1:bag{(t:int)});");
+        pigServer.registerQuery("b = foreach a generate flatten(bag1) as field1;");
+        pigServer.registerQuery("c = foreach b generate flatten(" + GenBag.class.getName() + "(field1));");
+        
+        Iterator<Tuple> iter = pigServer.openIterator("c");
+        Assert.assertEquals(iter.next().toString(), "(12)");
+        Assert.assertEquals(iter.next().toString(), "(15)");
+        
+        Assert.assertFalse(iter.hasNext());
+    }
 }