Author: rohini
Date: Thu Aug 6 20:05:25 2015
New Revision: 1694561
URL: http://svn.apache.org/r1694561
Log:
PIG-4644: PORelationToExprProject.clone() is broken (erwaman via rohini)
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/PORelationToExprProject.java
Modified: pig/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1694561&r1=1694560&r2=1694561&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Thu Aug 6 20:05:25 2015
@@ -38,6 +38,8 @@ PIG-4639: Add better parser for Apache H
BUG FIXES
+PIG-4644: PORelationToExprProject.clone() is broken (erwaman via rohini)
+
PIG-4650: ant mvn-deploy target is broken (daijy)
PIG-4649: [Pig on Tez] Union followed by HCatStorer misses some data (rohini)
Modified:
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java
URL:
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java?rev=1694561&r1=1694560&r2=1694561&view=diff
==============================================================================
---
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java
(original)
+++
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POProject.java
Thu Aug 6 20:05:25 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/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/PORelationToExprProject.java
URL:
http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/PORelationToExprProject.java?rev=1694561&r1=1694560&r2=1694561&view=diff
==============================================================================
---
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/PORelationToExprProject.java
(original)
+++
pig/trunk/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/PORelationToExprProject.java
Thu Aug 6 20:05:25 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;
}
-
}