Author: daijy
Date: Thu Apr 1 22:41:56 2010
New Revision: 930121
URL: http://svn.apache.org/viewvc?rev=930121&view=rev
Log:
PIG-1335: UDFFinder should find LoadFunc used by POCast
Modified:
hadoop/pig/branches/branch-0.7/CHANGES.txt
hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/plans/UDFFinder.java
hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POCast.java
hadoop/pig/branches/branch-0.7/test/org/apache/pig/test/TestMRCompiler.java
Modified: hadoop/pig/branches/branch-0.7/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.7/CHANGES.txt?rev=930121&r1=930120&r2=930121&view=diff
==============================================================================
--- hadoop/pig/branches/branch-0.7/CHANGES.txt (original)
+++ hadoop/pig/branches/branch-0.7/CHANGES.txt Thu Apr 1 22:41:56 2010
@@ -179,6 +179,8 @@ OPTIMIZATIONS
BUG FIXES
+PIG-1335: UDFFinder should find LoadFunc used by POCast (daijy)
+
PIG-1307: when we spill the DefaultDataBag we are not setting the sized
changed flag to be true. (breed via daijy)
PIG-1298: Restore file traversal behavior to Pig loaders (rding)
Modified:
hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/plans/UDFFinder.java
URL:
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/plans/UDFFinder.java?rev=930121&r1=930120&r2=930121&view=diff
==============================================================================
---
hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/plans/UDFFinder.java
(original)
+++
hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/mapReduceLayer/plans/UDFFinder.java
Thu Apr 1 22:41:56 2010
@@ -21,6 +21,7 @@ import java.util.ArrayList;
import java.util.List;
import
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator;
+import
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POCast;
import
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserComparisonFunc;
import
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc;
import
org.apache.pig.backend.hadoop.executionengine.physicalLayer.plans.PhyPlanVisitor;
@@ -91,5 +92,10 @@ public class UDFFinder extends PhyPlanVi
UDFs.add(compFunc.getFuncSpec().toString());
}
+ @Override
+ public void visitCast(POCast op) {
+ if (op.getFuncSpec()!=null)
+ UDFs.add(op.getFuncSpec().toString());
+ }
}
Modified:
hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POCast.java
URL:
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POCast.java?rev=930121&r1=930120&r2=930121&view=diff
==============================================================================
---
hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POCast.java
(original)
+++
hadoop/pig/branches/branch-0.7/src/org/apache/pig/backend/hadoop/executionengine/physicalLayer/expressionOperators/POCast.java
Thu Apr 1 22:41:56 2010
@@ -1028,5 +1028,9 @@ public class POCast extends ExpressionOp
public void setFieldSchema(ResourceFieldSchema s) {
fieldSchema = s;
}
+
+ public FuncSpec getFuncSpec() {
+ return funcSpec;
+ }
}
Modified:
hadoop/pig/branches/branch-0.7/test/org/apache/pig/test/TestMRCompiler.java
URL:
http://svn.apache.org/viewvc/hadoop/pig/branches/branch-0.7/test/org/apache/pig/test/TestMRCompiler.java?rev=930121&r1=930120&r2=930121&view=diff
==============================================================================
--- hadoop/pig/branches/branch-0.7/test/org/apache/pig/test/TestMRCompiler.java
(original)
+++ hadoop/pig/branches/branch-0.7/test/org/apache/pig/test/TestMRCompiler.java
Thu Apr 1 22:41:56 2010
@@ -968,6 +968,24 @@ public class TestMRCompiler extends juni
}
+ @Test
+ public void testCastFuncShipped() throws Exception{
+
+ planTester.buildPlan("a = load '/tmp/input1' using " +
PigStorageNoDefCtor.class.getName() +
+ "('\t') as (a0, a1, a2);");
+ planTester.buildPlan("b = group a by a0;");
+ planTester.buildPlan("c = foreach b generate flatten(a);");
+ planTester.buildPlan("d = order c by a0;");
+ planTester.buildPlan("e = foreach d generate a1+a2;");
+ LogicalPlan lp = planTester.buildPlan("store e into '/tmp';");
+ planTester.typeCheckPlan(lp);
+
+ PhysicalPlan pp = Util.buildPhysicalPlan(lp, pc);
+ MROperPlan mp = Util.buildMRPlan(pp, pc);
+ MapReduceOper op = mp.getLeaves().get(0);
+ assertTrue(op.UDFs.contains(new
FuncSpec(PigStorageNoDefCtor.class.getName())+"('\t')"));
+ }
+
private void run(PhysicalPlan pp, String expectedFile) throws Exception {
String compiledPlan, goldenPlan = null;
int MAX_SIZE = 100000;