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 2010/11/21 20:24:46 UTC
svn commit: r1037529 - in /pig/branches/branch-0.8: CHANGES.txt
src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java
Author: daijy
Date: Sun Nov 21 19:24:46 2010
New Revision: 1037529
URL: http://svn.apache.org/viewvc?rev=1037529&view=rev
Log:
PIG-1738: New logical plan: Optimized UserFuncExpression.getFieldSchema
Modified:
pig/branches/branch-0.8/CHANGES.txt
pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java
Modified: pig/branches/branch-0.8/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.8/CHANGES.txt?rev=1037529&r1=1037528&r2=1037529&view=diff
==============================================================================
--- pig/branches/branch-0.8/CHANGES.txt (original)
+++ pig/branches/branch-0.8/CHANGES.txt Sun Nov 21 19:24:46 2010
@@ -207,6 +207,8 @@ PIG-1309: Map-side Cogroup (ashutoshc)
BUG FIXES
+PIG-1738: New logical plan: Optimized UserFuncExpression.getFieldSchema (daijy)
+
PIG-1732: New logical plan: logical plan get confused if we generate the same
field twice in ForEach (daijy)
Modified: pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java
URL: http://svn.apache.org/viewvc/pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java?rev=1037529&r1=1037528&r2=1037529&view=diff
==============================================================================
--- pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java (original)
+++ pig/branches/branch-0.8/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java Sun Nov 21 19:24:46 2010
@@ -41,7 +41,8 @@ import org.apache.pig.newplan.logical.re
public class UserFuncExpression extends LogicalExpression {
private FuncSpec mFuncSpec;
- private Operator implicitReferencedOperator = null;
+ private Operator implicitReferencedOperator = null;
+ private EvalFunc<?> ef = null;
public UserFuncExpression(OperatorPlan plan, FuncSpec funcSpec) {
super("UserFunc", plan);
@@ -137,7 +138,10 @@ public class UserFuncExpression extends
}
}
- EvalFunc<?> ef = (EvalFunc<?>) PigContext.instantiateFuncFromSpec(mFuncSpec);
+ // Since ef only set one time, we never change its value, so we can optimize it by instantiate only once.
+ // This significantly optimize the performance of frontend (PIG-1738)
+ if (ef==null)
+ ef = (EvalFunc<?>) PigContext.instantiateFuncFromSpec(mFuncSpec);
Schema udfSchema = ef.outputSchema(Util.translateSchema(inputSchema));
if (udfSchema != null) {