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 2010/11/19 23:27:58 UTC

svn commit: r1037060 - in /pig/branches/branch-0.8: CHANGES.txt src/org/apache/pig/newplan/logical/LogicalExpPlanMigrationVistor.java test/org/apache/pig/test/TestEvalPipeline2.java

Author: daijy
Date: Fri Nov 19 22:27:57 2010
New Revision: 1037060

URL: http://svn.apache.org/viewvc?rev=1037060&view=rev
Log:
PIG-1721: New logical plan: script fail when reuse foreach inner alias

Modified:
    pig/branches/branch-0.8/CHANGES.txt
    pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/LogicalExpPlanMigrationVistor.java
    pig/branches/branch-0.8/test/org/apache/pig/test/TestEvalPipeline2.java

Modified: pig/branches/branch-0.8/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.8/CHANGES.txt?rev=1037060&r1=1037059&r2=1037060&view=diff
==============================================================================
--- pig/branches/branch-0.8/CHANGES.txt (original)
+++ pig/branches/branch-0.8/CHANGES.txt Fri Nov 19 22:27:57 2010
@@ -207,6 +207,8 @@ PIG-1309: Map-side Cogroup (ashutoshc)
 
 BUG FIXES
 
+PIG-1721: New logical plan: script fail when reuse foreach inner alias (daijy)
+
 PIG-1716: New logical plan: LogToPhyTranslationVisitor should translate the structure for regex optimization (daijy)
 
 PIG-1740: Fix SVN location in setup doc (chandec via olgan)

Modified: pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/LogicalExpPlanMigrationVistor.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/LogicalExpPlanMigrationVistor.java?rev=1037060&r1=1037059&r2=1037060&view=diff
==============================================================================
--- pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/LogicalExpPlanMigrationVistor.java (original)
+++ pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/LogicalExpPlanMigrationVistor.java Fri Nov 19 22:27:57 2010
@@ -54,7 +54,7 @@ import org.apache.pig.impl.logicalLayer.
 import org.apache.pig.impl.logicalLayer.LogicalOperator;
 import org.apache.pig.impl.logicalLayer.LogicalPlan;
 import org.apache.pig.impl.logicalLayer.schema.Schema.FieldSchema;
-import org.apache.pig.impl.plan.DependencyOrderWalker;
+import org.apache.pig.impl.plan.DependencyOrderWalkerWOSeenChk;
 import org.apache.pig.impl.plan.VisitorException;
 import org.apache.pig.newplan.logical.expression.AddExpression;
 import org.apache.pig.newplan.logical.expression.AndExpression;
@@ -97,7 +97,7 @@ public class LogicalExpPlanMigrationVist
     public LogicalExpPlanMigrationVistor(LogicalPlan expressionPlan, LogicalOperator oldAttachedOperator,
             LogicalRelationalOperator attachedOperator, LogicalPlan outerPlan, 
             Map<LogicalOperator, LogicalRelationalOperator> outerOpsMap) {
-        super(expressionPlan, new DependencyOrderWalker<LogicalOperator, LogicalPlan>(expressionPlan));
+        super(expressionPlan, new DependencyOrderWalkerWOSeenChk<LogicalOperator, LogicalPlan>(expressionPlan));
         exprPlan = new org.apache.pig.newplan.logical.expression.LogicalExpressionPlan();
         exprOpsMap = new HashMap<LogicalOperator, LogicalExpression>();
         attachedRelationalOp = attachedOperator;

Modified: pig/branches/branch-0.8/test/org/apache/pig/test/TestEvalPipeline2.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.8/test/org/apache/pig/test/TestEvalPipeline2.java?rev=1037060&r1=1037059&r2=1037060&view=diff
==============================================================================
--- pig/branches/branch-0.8/test/org/apache/pig/test/TestEvalPipeline2.java (original)
+++ pig/branches/branch-0.8/test/org/apache/pig/test/TestEvalPipeline2.java Fri Nov 19 22:27:57 2010
@@ -819,4 +819,27 @@ public class TestEvalPipeline2 extends T
         t = it.next();
         assertTrue(t.get(0).equals("WORLD"));
     }
+    
+    // See PIG-1721
+    @Test
+    public void testDuplicateInnerAlias() throws Exception{
+        String[] input1 = {
+                "1\t[key1#5]", "1\t[key2#5]", "2\t[key1#3]"
+        };
+        
+        Util.createInputFile(cluster, "table_testDuplicateInnerAlias", input1);
+        pigServer.registerQuery("a = load 'table_testDuplicateInnerAlias' as (a0:int, a1:map[]);");
+        pigServer.registerQuery("b = filter a by a0==1;");
+        pigServer.registerQuery("c = foreach b { b0 = a1#'key1'; generate ((b0 is null or b0 == '')?1:0);};");
+        
+        Iterator<Tuple> iter = pigServer.openIterator("c");
+        
+        Tuple t = iter.next();
+        assertTrue((Integer)t.get(0)==0);
+        
+        t = iter.next();
+        assertTrue((Integer)t.get(0)==1);
+        
+        assertFalse(iter.hasNext());
+    }
 }