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/20 01:02:47 UTC
svn commit: r1037088 - in /pig/trunk: CHANGES.txt
src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java
src/org/apache/pig/newplan/logical/rules/GroupByConstParallelSetter.java
test/org/apache/pig/test/TestEvalPipeline2.java
Author: daijy
Date: Sat Nov 20 00:02:47 2010
New Revision: 1037088
URL: http://svn.apache.org/viewvc?rev=1037088&view=rev
Log:
PIG-1729: New logical plan: Dereference does not add into plan after deepCopy
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java
pig/trunk/src/org/apache/pig/newplan/logical/rules/GroupByConstParallelSetter.java
pig/trunk/test/org/apache/pig/test/TestEvalPipeline2.java
Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1037088&r1=1037087&r2=1037088&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Sat Nov 20 00:02:47 2010
@@ -220,6 +220,8 @@ PIG-1309: Map-side Cogroup (ashutoshc)
BUG FIXES
+PIG-1729: New logical plan: Dereference does not add into plan after deepCopy (daijy)
+
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)
Modified: pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java?rev=1037088&r1=1037087&r2=1037088&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/logical/expression/DereferenceExpression.java Sat Nov 20 00:02:47 2010
@@ -55,12 +55,14 @@ public class DereferenceExpression exten
super( "Dereference", plan );
columns = new ArrayList<Integer>();
columns.add(colNum);
+ plan.add(this);
}
public DereferenceExpression(OperatorPlan plan, List<Integer> columnNums) {
super( "Dereference", plan );
columns = new ArrayList<Integer>();
columns.addAll(columnNums);
+ plan.add(this);
}
/**
Modified: pig/trunk/src/org/apache/pig/newplan/logical/rules/GroupByConstParallelSetter.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/rules/GroupByConstParallelSetter.java?rev=1037088&r1=1037087&r2=1037088&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/logical/rules/GroupByConstParallelSetter.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/logical/rules/GroupByConstParallelSetter.java Sat Nov 20 00:02:47 2010
@@ -55,8 +55,7 @@ public class GroupByConstParallelSetter
}
private final static Log log = LogFactory.getLog(GroupByConstParallelSetter.class);
- public static class GroupAllParallelSetterTransformer extends Transformer {
- private OperatorPlan plan;
+ public class GroupAllParallelSetterTransformer extends Transformer {
@Override
public boolean check(OperatorPlan matched) throws FrontendException {
@@ -84,7 +83,6 @@ public class GroupByConstParallelSetter
@Override
public void transform(OperatorPlan plan) throws FrontendException {
- this.plan = ((OperatorSubPlan) plan).getBasePlan();
Iterator<Operator> iter = plan.getOperators();
while (iter.hasNext()) {
Operator op = iter.next();
@@ -103,7 +101,7 @@ public class GroupByConstParallelSetter
@Override
public OperatorPlan reportChanges() {
- return plan;
+ return new OperatorSubPlan(currentPlan);
}
}
Modified: pig/trunk/test/org/apache/pig/test/TestEvalPipeline2.java
URL: http://svn.apache.org/viewvc/pig/trunk/test/org/apache/pig/test/TestEvalPipeline2.java?rev=1037088&r1=1037087&r2=1037088&view=diff
==============================================================================
--- pig/trunk/test/org/apache/pig/test/TestEvalPipeline2.java (original)
+++ pig/trunk/test/org/apache/pig/test/TestEvalPipeline2.java Sat Nov 20 00:02:47 2010
@@ -842,4 +842,32 @@ public class TestEvalPipeline2 extends T
assertFalse(iter.hasNext());
}
+
+ // See PIG-1729
+ @Test
+ public void testDereferenceInnerPlan() throws Exception{
+ String[] input1 = {
+ "1\t2\t3"
+ };
+
+ String[] input2 = {
+ "1\t1"
+ };
+
+ Util.createInputFile(cluster, "table_testDereferenceInnerPlan1", input1);
+ Util.createInputFile(cluster, "table_testDereferenceInnerPlan2", input2);
+ pigServer.registerQuery("a = load 'table_testDereferenceInnerPlan1' as (a0:int, a1:int, a2:int);");
+ pigServer.registerQuery("b = load 'table_testDereferenceInnerPlan2' as (b0:int, b1:int);");
+ pigServer.registerQuery("c = cogroup a by a0, b by b0;");
+ pigServer.registerQuery("d = foreach c generate ((COUNT(a)==0L)?null : a.a0) as d0;");
+ pigServer.registerQuery("e = foreach d generate flatten(d0);");
+ pigServer.registerQuery("f = group e all;");
+
+ Iterator<Tuple> iter = pigServer.openIterator("f");
+
+ Tuple t = iter.next();
+ assertTrue(t.toString().equals("(all,{(1)})"));
+
+ assertFalse(iter.hasNext());
+ }
}