You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ch...@apache.org on 2012/10/30 18:43:10 UTC
svn commit: r1403800 - in /pig/branches/branch-0.11: CHANGES.txt
src/org/apache/pig/newplan/logical/rules/ColumnPruneVisitor.java
test/org/apache/pig/test/TestNewPlanColumnPrune.java
Author: cheolsoo
Date: Tue Oct 30 17:43:09 2012
New Revision: 1403800
URL: http://svn.apache.org/viewvc?rev=1403800&view=rev
Log:
PIG-2968 ColumnMapKeyPrune fails to prune a subtree inside foreach (knoguchi via cheolsoo)
Modified:
pig/branches/branch-0.11/CHANGES.txt
pig/branches/branch-0.11/src/org/apache/pig/newplan/logical/rules/ColumnPruneVisitor.java
pig/branches/branch-0.11/test/org/apache/pig/test/TestNewPlanColumnPrune.java
Modified: pig/branches/branch-0.11/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/CHANGES.txt?rev=1403800&r1=1403799&r2=1403800&view=diff
==============================================================================
--- pig/branches/branch-0.11/CHANGES.txt (original)
+++ pig/branches/branch-0.11/CHANGES.txt Tue Oct 30 17:43:09 2012
@@ -310,6 +310,8 @@ OPTIMIZATIONS
BUG FIXES
+PIG-2968: ColumnMapKeyPrune fails to prune a subtree inside foreach (knoguchi via cheolsoo)
+
PIG-2999: Regression after PIG-2975: BinInterSedesTupleRawComparator secondary sort failing (knoguchi via azaroth)
PIG-2998: Fix TestScriptLanguage and TestMacroExpansion (cheolsoo via jcoveney)
Modified: pig/branches/branch-0.11/src/org/apache/pig/newplan/logical/rules/ColumnPruneVisitor.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/src/org/apache/pig/newplan/logical/rules/ColumnPruneVisitor.java?rev=1403800&r1=1403799&r2=1403800&view=diff
==============================================================================
--- pig/branches/branch-0.11/src/org/apache/pig/newplan/logical/rules/ColumnPruneVisitor.java (original)
+++ pig/branches/branch-0.11/src/org/apache/pig/newplan/logical/rules/ColumnPruneVisitor.java Tue Oct 30 17:43:09 2012
@@ -448,7 +448,7 @@ public class ColumnPruneVisitor extends
LogicalPlan p = (LogicalPlan)op.getPlan();
List<Operator> ll = p.getPredecessors(op);
if (ll != null) {
- for(Operator pred: ll) {
+ for(Operator pred: ll.toArray(new Operator[ll.size()])) {
removeSubTree((LogicalRelationalOperator)pred);
}
}
Modified: pig/branches/branch-0.11/test/org/apache/pig/test/TestNewPlanColumnPrune.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.11/test/org/apache/pig/test/TestNewPlanColumnPrune.java?rev=1403800&r1=1403799&r2=1403800&view=diff
==============================================================================
--- pig/branches/branch-0.11/test/org/apache/pig/test/TestNewPlanColumnPrune.java (original)
+++ pig/branches/branch-0.11/test/org/apache/pig/test/TestNewPlanColumnPrune.java Tue Oct 30 17:43:09 2012
@@ -390,7 +390,26 @@ public class TestNewPlanColumnPrune exte
assertTrue(expected.isEqual(newLogicalPlan));
}
-
+
+ public void testPruneSubTreeForEach() throws Exception {
+ String query = "a =load 'd.txt' as (id, v1);" +
+ "b = group a by id;" +
+ "c = foreach b { d = a.v1; " +
+ " e = distinct d; " +
+ " generate group, e; };" +
+ "f = foreach c generate group ;" +
+ "store f into 'empty';";
+ LogicalPlan newLogicalPlan = buildPlan(query);
+ PlanOptimizer optimizer = new MyPlanOptimizer(newLogicalPlan, 3);
+ try {
+ optimizer.optimize();
+ } catch (Exception e) {
+ //PIG-2968 throws ConcurrentModificationException
+ e.printStackTrace();
+ fail("Unexpected Exception: " + e);
+ }
+ }
+
public class MyPlanOptimizer extends LogicalPlanOptimizer {
protected MyPlanOptimizer(OperatorPlan p, int iterations) {