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 2015/11/02 20:12:04 UTC

svn commit: r1712115 - in /pig/branches/branch-0.15: ./ src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/

Author: daijy
Date: Mon Nov  2 19:12:03 2015
New Revision: 1712115

URL: http://svn.apache.org/viewvc?rev=1712115&view=rev
Log:
PIG-4644: PORelationToExprProject.clone() is broken

Modified:
    pig/branches/branch-0.15/CHANGES.txt
    pig/branches/branch-0.15/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java
    pig/branches/branch-0.15/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/PORelationToExprProject.java

Modified: pig/branches/branch-0.15/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.15/CHANGES.txt?rev=1712115&r1=1712114&r2=1712115&view=diff
==============================================================================
--- pig/branches/branch-0.15/CHANGES.txt (original)
+++ pig/branches/branch-0.15/CHANGES.txt Mon Nov  2 19:12:03 2015
@@ -28,6 +28,8 @@ OPTIMIZATIONS
 
 BUG FIXES
 
+PIG-4644: PORelationToExprProject.clone() is broken (erwaman via rohini)
+
 PIG-4703: TezOperator.stores shall not ship to backend (daijy)
 
 PIG-4688: Limit followed by POPartialAgg can give empty or partial results in Tez (rohini)

Modified: pig/branches/branch-0.15/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.15/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java?rev=1712115&r1=1712114&r2=1712115&view=diff
==============================================================================
--- pig/branches/branch-0.15/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java (original)
+++ pig/branches/branch-0.15/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java Mon Nov  2 19:12:03 2015
@@ -62,20 +62,20 @@ public class POProject extends Expressio
 
     //True if we are in the middle of streaming tuples
     //in a bag
-    boolean processingBagOfTuples = false;
+    private boolean processingBagOfTuples = false;
 
     //The bag iterator used while straeming tuple
-    transient Iterator<Tuple> bagIterator = null;
+    private transient Iterator<Tuple> bagIterator = null;
 
     //Represents the fact that this instance of POProject
     //is overloaded to stream tuples in the bag rather
     //than passing the entire bag. It is the responsibility
     //of the translator to set this.
-    boolean overloaded = false;
+    protected boolean overloaded = false;
 
 
-    private boolean isProjectToEnd = false;
-    private int startCol;
+    protected boolean isProjectToEnd = false;
+    protected int startCol;
 
     public POProject(OperatorKey k) {
         this(k,-1,0);

Modified: pig/branches/branch-0.15/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/PORelationToExprProject.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.15/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/PORelationToExprProject.java?rev=1712115&r1=1712114&r2=1712115&view=diff
==============================================================================
--- pig/branches/branch-0.15/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/PORelationToExprProject.java (original)
+++ pig/branches/branch-0.15/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/PORelationToExprProject.java Mon Nov  2 19:12:03 2015
@@ -25,6 +25,7 @@ import org.apache.pig.backend.hadoop.exe
 import org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor;
 import org.apache.pig.data.DataType;
 import org.apache.pig.data.NonSpillableDataBag;
+import org.apache.pig.impl.plan.NodeIdGenerator;
 import org.apache.pig.impl.plan.OperatorKey;
 import org.apache.pig.impl.plan.VisitorException;
 
@@ -139,9 +140,23 @@ public class PORelationToExprProject ext
         return(r);
     }
        
+    // See PIG-4644
     @Override
     public PORelationToExprProject clone() throws CloneNotSupportedException {
-        return (PORelationToExprProject) super.clone();
+        ArrayList<Integer> cols = new ArrayList<Integer>(columns.size());
+        // Can reuse the same Integer objects, as they are immutable
+        for (Integer i : columns) {
+            cols.add(i);
+        }
+        PORelationToExprProject clone = new PORelationToExprProject(new OperatorKey(mKey.scope,
+            NodeIdGenerator.getGenerator().getNextNodeId(mKey.scope)),
+            requestedParallelism, cols);
+        clone.cloneHelper(this);
+        clone.overloaded = overloaded;
+        clone.startCol = startCol;
+        clone.isProjectToEnd = isProjectToEnd;
+        clone.resultType = resultType;
+        clone.sendEmptyBagOnEOP = sendEmptyBagOnEOP;
+        return clone;
     }
-    
 }