You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ga...@apache.org on 2008/09/09 21:32:39 UTC

svn commit: r693574 - in /incubator/pig/branches/types/src/org/apache/pig: PigServer.java backend/hadoop/executionengine/mapReduceLayer/PigMapReduce.java impl/logicalLayer/optimizer/LogicalTransformer.java

Author: gates
Date: Tue Sep  9 12:32:38 2008
New Revision: 693574

URL: http://svn.apache.org/viewvc?rev=693574&view=rev
Log:
PIG-416 Fixed LogicalTransformer so that when a script with a split needs to be reorganized after an optimization, the LOSplitOutput is properly patched up.
Previously it was getting skipped.

Fixed PigServer so that explain will work after a split.

Removed debug statement from PigMapReduce that was printing every line out as it went into reduce.


Modified:
    incubator/pig/branches/types/src/org/apache/pig/PigServer.java
    incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/PigMapReduce.java
    incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/optimizer/LogicalTransformer.java

Modified: incubator/pig/branches/types/src/org/apache/pig/PigServer.java
URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/PigServer.java?rev=693574&r1=693573&r2=693574&view=diff
==============================================================================
--- incubator/pig/branches/types/src/org/apache/pig/PigServer.java (original)
+++ incubator/pig/branches/types/src/org/apache/pig/PigServer.java Tue Sep  9 12:32:38 2008
@@ -398,7 +398,11 @@
             if(null == op) {
                 throw new IOException("Unable to find an operator for alias " + alias);
             }
-            LogicalPlan lp = compileLp(getPlanFromAlias(alias, op.getClass().getName()), "explain");
+            LogicalPlan storePlan = QueryParser.generateStorePlan(opTable,
+                scope, getPlanFromAlias(alias, op.getClass().getName()),
+                "fakefile", PigStorage.class.getName(), aliasOp.get(alias),
+                aliases);
+            LogicalPlan lp = compileLp(storePlan, "explain");
             stream.println("Logical Plan:");
             LOPrinter lv = new LOPrinter(stream, lp);
             lv.visit();

Modified: incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/PigMapReduce.java
URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/PigMapReduce.java?rev=693574&r1=693573&r2=693574&view=diff
==============================================================================
--- incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/PigMapReduce.java (original)
+++ incubator/pig/branches/types/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/PigMapReduce.java Tue Sep  9 12:32:38 2008
@@ -167,7 +167,6 @@
                         return;
                     }
                     
-                    log.info("Attaching " + packRes + " to " + rp.getRoots());
                     rp.attachInput(packRes);
 
                     List<PhysicalOperator> leaves = rp.getLeaves();

Modified: incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/optimizer/LogicalTransformer.java
URL: http://svn.apache.org/viewvc/incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/optimizer/LogicalTransformer.java?rev=693574&r1=693573&r2=693574&view=diff
==============================================================================
--- incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/optimizer/LogicalTransformer.java (original)
+++ incubator/pig/branches/types/src/org/apache/pig/impl/logicalLayer/optimizer/LogicalTransformer.java Tue Sep  9 12:32:38 2008
@@ -21,6 +21,9 @@
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
 import org.apache.pig.impl.plan.DepthFirstWalker;
 import org.apache.pig.impl.plan.PlanWalker;
 import org.apache.pig.impl.plan.VisitorException;
@@ -41,6 +44,8 @@
 
 public abstract class LogicalTransformer extends Transformer<LogicalOperator, LogicalPlan> {
 
+    private final Log log = LogFactory.getLog(getClass());
+
     protected LogicalTransformer(
             LogicalPlan plan,
             PlanWalker<LogicalOperator, LogicalPlan> walker) {
@@ -185,8 +190,19 @@
             plans.addAll(((LOSort)before).getSortColPlans());
         } else if (before instanceof LOFilter) {
             plans.add(((LOFilter)before).getComparisonPlan());
-        } else if (before instanceof LOSplitOutput) {
-            plans.add(((LOSplitOutput)before).getConditionPlan());
+        } else if (before instanceof LOSplit) {
+            // In this case we have to find each of the Split outputs, and
+            // add their plans.
+            List<LogicalOperator> splitOutputs = mPlan.getSuccessors(before);
+            for (LogicalOperator so : splitOutputs) {
+                if (!(so instanceof LOSplitOutput)) {
+                    String msg = "Found an LOSplit with an operator other " 
+                        + "than LOSplitOutput after it!";
+                    log.error(msg);
+                    throw new VisitorException(msg);
+                }
+                plans.add(((LOSplitOutput)so).getConditionPlan());
+            }
         } else if (before instanceof LOForEach) {
             plans.addAll(((LOForEach)before).getForEachPlans());
         }