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