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 2014/08/27 02:40:00 UTC
svn commit: r1620769 [1/2] - in /pig/trunk: ./ src/org/apache/pig/
src/org/apache/pig/builtin/ src/org/apache/pig/newplan/
src/org/apache/pig/newplan/logical/expression/
src/org/apache/pig/newplan/logical/optimizer/
src/org/apache/pig/newplan/logical/r...
Author: daijy
Date: Wed Aug 27 00:39:58 2014
New Revision: 1620769
URL: http://svn.apache.org/r1620769
Log:
PIG-4128: New logical optimizer rule: ConstantCalculator
Added:
pig/trunk/src/org/apache/pig/newplan/logical/rules/ConstantCalculator.java
pig/trunk/src/org/apache/pig/newplan/logical/rules/FilterConstantCalculator.java
pig/trunk/src/org/apache/pig/newplan/logical/rules/ForEachConstantCalculator.java
pig/trunk/test/org/apache/pig/test/TestConstantCalculator.java
Removed:
pig/trunk/src/org/apache/pig/newplan/logical/rules/ConstExpEvaluator.java
pig/trunk/src/org/apache/pig/newplan/logical/rules/DNFExpression.java
pig/trunk/src/org/apache/pig/newplan/logical/rules/DNFPlan.java
pig/trunk/src/org/apache/pig/newplan/logical/rules/DNFPlanGenerator.java
pig/trunk/src/org/apache/pig/newplan/logical/rules/LogicalExpressionProxy.java
pig/trunk/src/org/apache/pig/newplan/logical/rules/LogicalExpressionSimplifier.java
pig/trunk/src/org/apache/pig/newplan/logical/rules/NotConversionVisitor.java
pig/trunk/test/excluded-tests-23
pig/trunk/test/org/apache/pig/test/TestFilterSimplification.java
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/EvalFunc.java
pig/trunk/src/org/apache/pig/Main.java
pig/trunk/src/org/apache/pig/builtin/ABS.java
pig/trunk/src/org/apache/pig/builtin/ARITY.java
pig/trunk/src/org/apache/pig/builtin/AddDuration.java
pig/trunk/src/org/apache/pig/builtin/Assert.java
pig/trunk/src/org/apache/pig/builtin/BagSize.java
pig/trunk/src/org/apache/pig/builtin/BagToString.java
pig/trunk/src/org/apache/pig/builtin/BagToTuple.java
pig/trunk/src/org/apache/pig/builtin/Base.java
pig/trunk/src/org/apache/pig/builtin/BigDecimalAbs.java
pig/trunk/src/org/apache/pig/builtin/BigIntegerAbs.java
pig/trunk/src/org/apache/pig/builtin/CONCAT.java
pig/trunk/src/org/apache/pig/builtin/ConstantSize.java
pig/trunk/src/org/apache/pig/builtin/CubeDimensions.java
pig/trunk/src/org/apache/pig/builtin/CurrentTime.java
pig/trunk/src/org/apache/pig/builtin/DIFF.java
pig/trunk/src/org/apache/pig/builtin/DaysBetween.java
pig/trunk/src/org/apache/pig/builtin/DoubleRound.java
pig/trunk/src/org/apache/pig/builtin/DoubleRoundTo.java
pig/trunk/src/org/apache/pig/builtin/ENDSWITH.java
pig/trunk/src/org/apache/pig/builtin/EqualsIgnoreCase.java
pig/trunk/src/org/apache/pig/builtin/FloatAbs.java
pig/trunk/src/org/apache/pig/builtin/FloatRound.java
pig/trunk/src/org/apache/pig/builtin/FloatRoundTo.java
pig/trunk/src/org/apache/pig/builtin/GetDay.java
pig/trunk/src/org/apache/pig/builtin/GetHour.java
pig/trunk/src/org/apache/pig/builtin/GetMilliSecond.java
pig/trunk/src/org/apache/pig/builtin/GetMinute.java
pig/trunk/src/org/apache/pig/builtin/GetMonth.java
pig/trunk/src/org/apache/pig/builtin/GetSecond.java
pig/trunk/src/org/apache/pig/builtin/GetWeek.java
pig/trunk/src/org/apache/pig/builtin/GetWeekYear.java
pig/trunk/src/org/apache/pig/builtin/GetYear.java
pig/trunk/src/org/apache/pig/builtin/HoursBetween.java
pig/trunk/src/org/apache/pig/builtin/INDEXOF.java
pig/trunk/src/org/apache/pig/builtin/INVERSEMAP.java
pig/trunk/src/org/apache/pig/builtin/IntAbs.java
pig/trunk/src/org/apache/pig/builtin/IsEmpty.java
pig/trunk/src/org/apache/pig/builtin/KEYSET.java
pig/trunk/src/org/apache/pig/builtin/LAST_INDEX_OF.java
pig/trunk/src/org/apache/pig/builtin/LCFIRST.java
pig/trunk/src/org/apache/pig/builtin/LOWER.java
pig/trunk/src/org/apache/pig/builtin/LTRIM.java
pig/trunk/src/org/apache/pig/builtin/LongAbs.java
pig/trunk/src/org/apache/pig/builtin/MapSize.java
pig/trunk/src/org/apache/pig/builtin/MilliSecondsBetween.java
pig/trunk/src/org/apache/pig/builtin/MinutesBetween.java
pig/trunk/src/org/apache/pig/builtin/MonthsBetween.java
pig/trunk/src/org/apache/pig/builtin/PluckTuple.java
pig/trunk/src/org/apache/pig/builtin/REGEX_EXTRACT.java
pig/trunk/src/org/apache/pig/builtin/REGEX_EXTRACT_ALL.java
pig/trunk/src/org/apache/pig/builtin/REPLACE.java
pig/trunk/src/org/apache/pig/builtin/ROUND.java
pig/trunk/src/org/apache/pig/builtin/ROUND_TO.java
pig/trunk/src/org/apache/pig/builtin/RTRIM.java
pig/trunk/src/org/apache/pig/builtin/RollupDimensions.java
pig/trunk/src/org/apache/pig/builtin/SIZE.java
pig/trunk/src/org/apache/pig/builtin/SPRINTF.java
pig/trunk/src/org/apache/pig/builtin/STARTSWITH.java
pig/trunk/src/org/apache/pig/builtin/STRSPLIT.java
pig/trunk/src/org/apache/pig/builtin/SUBSTRING.java
pig/trunk/src/org/apache/pig/builtin/SUBTRACT.java
pig/trunk/src/org/apache/pig/builtin/SecondsBetween.java
pig/trunk/src/org/apache/pig/builtin/StringConcat.java
pig/trunk/src/org/apache/pig/builtin/StringSize.java
pig/trunk/src/org/apache/pig/builtin/SubtractDuration.java
pig/trunk/src/org/apache/pig/builtin/TOBAG.java
pig/trunk/src/org/apache/pig/builtin/TOKENIZE.java
pig/trunk/src/org/apache/pig/builtin/TOMAP.java
pig/trunk/src/org/apache/pig/builtin/TOTUPLE.java
pig/trunk/src/org/apache/pig/builtin/TRIM.java
pig/trunk/src/org/apache/pig/builtin/ToDate.java
pig/trunk/src/org/apache/pig/builtin/ToDate2ARGS.java
pig/trunk/src/org/apache/pig/builtin/ToDate3ARGS.java
pig/trunk/src/org/apache/pig/builtin/ToDateISO.java
pig/trunk/src/org/apache/pig/builtin/ToMilliSeconds.java
pig/trunk/src/org/apache/pig/builtin/ToString.java
pig/trunk/src/org/apache/pig/builtin/ToUnixTime.java
pig/trunk/src/org/apache/pig/builtin/TupleSize.java
pig/trunk/src/org/apache/pig/builtin/UCFIRST.java
pig/trunk/src/org/apache/pig/builtin/UPPER.java
pig/trunk/src/org/apache/pig/builtin/VALUELIST.java
pig/trunk/src/org/apache/pig/builtin/VALUESET.java
pig/trunk/src/org/apache/pig/builtin/WeeksBetween.java
pig/trunk/src/org/apache/pig/builtin/YearsBetween.java
pig/trunk/src/org/apache/pig/newplan/BaseOperatorPlan.java
pig/trunk/src/org/apache/pig/newplan/logical/expression/ConstantExpression.java
pig/trunk/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java
pig/trunk/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanOptimizer.java
pig/trunk/src/org/apache/pig/newplan/logical/relational/LogicalPlan.java
Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Wed Aug 27 00:39:58 2014
@@ -24,6 +24,8 @@ INCOMPATIBLE CHANGES
IMPROVEMENTS
+PIG-4128: New logical optimizer rule: ConstantCalculator (daijy)
+
PIG-4124: Command for Python streaming udf should be configurable (cheolsoo)
PIG-4114: Add Native operator to tez (daijy)
Modified: pig/trunk/src/org/apache/pig/EvalFunc.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/EvalFunc.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/EvalFunc.java (original)
+++ pig/trunk/src/org/apache/pig/EvalFunc.java Wed Aug 27 00:39:58 2014
@@ -341,4 +341,14 @@ public abstract class EvalFunc<T> {
return SchemaType.NORMAL;
}
+ /**
+ * Whether the UDF should be evaluated at compile time if all inputs are constant.
+ * This is applicable for most UDF, however, if a UDF will access hdfs file which
+ * is not available at compile time, it has to be false
+ * @return Whether or not compile time calculation is allowed, default to false
+ * to ensure legacy UDF will get the right behavior
+ */
+ public boolean allowCompileTimeCalculation() {
+ return false;
+ }
}
Modified: pig/trunk/src/org/apache/pig/Main.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/Main.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/Main.java (original)
+++ pig/trunk/src/org/apache/pig/Main.java Wed Aug 27 00:39:58 2014
@@ -113,9 +113,6 @@ public class Main {
private enum ExecMode {STRING, FILE, SHELL, UNKNOWN}
- private static final String PROP_FILT_SIMPL_OPT
- = "pig.exec.filterLogicExpressionSimplifier";
-
protected static final String PROGRESS_NOTIFICATION_LISTENER_KEY = "pig.notification.listener";
protected static final String PROGRESS_NOTIFICATION_LISTENER_ARG_KEY = "pig.notification.listener.arg";
@@ -402,11 +399,6 @@ public class Main {
deleteTempFiles = Boolean.valueOf(properties.getProperty(
PigConfiguration.PIG_DELETE_TEMP_FILE, "true"));
- if( ! Boolean.valueOf(properties.getProperty(PROP_FILT_SIMPL_OPT, "false"))){
- //turn off if the user has not explicitly turned on this optimization
- disabledOptimizerRules.add("FilterLogicExpressionSimplifier");
- }
-
pigContext.getProperties().setProperty(PigImplConstants.PIG_OPTIMIZER_RULES_KEY,
ObjectSerializer.serialize(disabledOptimizerRules));
@@ -863,6 +855,7 @@ public class Main {
System.out.println(" -p, -param - Key value pair of the form param=val");
System.out.println(" -r, -dryrun - Produces script with substituted parameters. Script is not executed.");
System.out.println(" -t, -optimizer_off - Turn optimizations off. The following values are supported:");
+ System.out.println(" ConstantCalculator - Calculate constants at compile time");
System.out.println(" SplitFilter - Split filter conditions");
System.out.println(" PushUpFilter - Filter as early as possible");
System.out.println(" MergeFilter - Merge filter conditions");
@@ -918,8 +911,6 @@ public class Main {
System.out.println(" pig.exec.mapPartAgg.minReduction=<min aggregation factor>. Default is 10.");
System.out.println(" If the in-map partial aggregation does not reduce the output num records");
System.out.println(" by this factor, it gets disabled.");
- System.out.println(" " + PROP_FILT_SIMPL_OPT + "=true|false; Default is false.");
- System.out.println(" Enable optimizer rules to simplify filter expressions.");
System.out.println(" Miscellaneous:");
System.out.println(" exectype=mapreduce|local; default is mapreduce. This property is the same as -x switch");
System.out.println(" pig.additional.jars=<colon seperated list of jars>. Used in place of register command.");
Modified: pig/trunk/src/org/apache/pig/builtin/ABS.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/ABS.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/ABS.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/ABS.java Wed Aug 27 00:39:58 2014
@@ -79,4 +79,8 @@ public class ABS extends EvalFunc<Double
return funcList;
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/ARITY.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/ARITY.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/ARITY.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/ARITY.java Wed Aug 27 00:39:58 2014
@@ -49,4 +49,9 @@ public class ARITY extends EvalFunc<Inte
public Schema outputSchema(Schema input) {
return new Schema(new Schema.FieldSchema(null, DataType.INTEGER));
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/AddDuration.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/AddDuration.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/AddDuration.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/AddDuration.java Wed Aug 27 00:39:58 2014
@@ -92,4 +92,9 @@ public class AddDuration extends EvalFun
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/Assert.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/Assert.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/Assert.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/Assert.java Wed Aug 27 00:39:58 2014
@@ -45,4 +45,9 @@ public class Assert extends EvalFunc<Boo
return true;
}
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/BagSize.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/BagSize.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/BagSize.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/BagSize.java Wed Aug 27 00:39:58 2014
@@ -18,6 +18,7 @@
package org.apache.pig.builtin;
import java.io.IOException;
+
import org.apache.pig.EvalFunc;
import org.apache.pig.PigException;
import org.apache.pig.backend.executionengine.ExecException;
@@ -51,4 +52,8 @@ public class BagSize extends EvalFunc<Lo
return new Schema(new Schema.FieldSchema(null, DataType.LONG));
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/BagToString.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/BagToString.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/BagToString.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/BagToString.java Wed Aug 27 00:39:58 2014
@@ -138,4 +138,8 @@ public class BagToString extends EvalFun
}
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/BagToTuple.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/BagToTuple.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/BagToTuple.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/BagToTuple.java Wed Aug 27 00:39:58 2014
@@ -142,4 +142,8 @@ public class BagToTuple extends EvalFunc
}
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/Base.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/Base.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/Base.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/Base.java Wed Aug 27 00:39:58 2014
@@ -30,4 +30,9 @@ public abstract class Base extends EvalF
public Schema outputSchema(Schema input) {
return new Schema(new Schema.FieldSchema(getSchemaName(this.getClass().getName().toLowerCase(), input), DataType.DOUBLE));
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/BigDecimalAbs.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/BigDecimalAbs.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/BigDecimalAbs.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/BigDecimalAbs.java Wed Aug 27 00:39:58 2014
@@ -29,4 +29,9 @@ public class BigDecimalAbs extends EvalF
public BigDecimal exec(Tuple input) throws IOException {
return ((BigDecimal)input.get(0)).abs();
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/BigIntegerAbs.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/BigIntegerAbs.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/BigIntegerAbs.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/BigIntegerAbs.java Wed Aug 27 00:39:58 2014
@@ -29,4 +29,9 @@ public class BigIntegerAbs extends EvalF
public BigInteger exec(Tuple input) throws IOException {
return ((BigInteger)input.get(0)).abs();
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/CONCAT.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/CONCAT.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/CONCAT.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/CONCAT.java Wed Aug 27 00:39:58 2014
@@ -87,4 +87,9 @@ public class CONCAT extends EvalFunc<Dat
public SchemaType getSchemaType() {
return SchemaType.VARARG;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/ConstantSize.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/ConstantSize.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/ConstantSize.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/ConstantSize.java Wed Aug 27 00:39:58 2014
@@ -50,4 +50,8 @@ public class ConstantSize extends EvalFu
return new Schema(new Schema.FieldSchema(null, DataType.LONG));
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/CubeDimensions.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/CubeDimensions.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/CubeDimensions.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/CubeDimensions.java Wed Aug 27 00:39:58 2014
@@ -126,4 +126,9 @@ public class CubeDimensions extends Eval
throw new RuntimeException(e);
}
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/CurrentTime.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/CurrentTime.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/CurrentTime.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/CurrentTime.java Wed Aug 27 00:39:58 2014
@@ -37,6 +37,10 @@ public class CurrentTime extends EvalFun
@Override
public DateTime exec(Tuple input) throws IOException {
+ // If we are doing compile time calculation
+ if (UDFContext.getUDFContext().isFrontend()) {
+ return new DateTime();
+ }
if (!isInitialized) {
String dateTimeValue = UDFContext.getUDFContext().getJobConf().get("pig.job.submitted.timestamp");
if (dateTimeValue == null) {
@@ -47,4 +51,9 @@ public class CurrentTime extends EvalFun
}
return dateTime;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/DIFF.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/DIFF.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/DIFF.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/DIFF.java Wed Aug 27 00:39:58 2014
@@ -98,6 +98,10 @@ public class DIFF extends EvalFunc<DataB
for (Tuple t : s2) if (!s1.contains(t)) emitTo.add(t);
}
-
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/DaysBetween.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/DaysBetween.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/DaysBetween.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/DaysBetween.java Wed Aug 27 00:39:58 2014
@@ -105,4 +105,9 @@ public class DaysBetween extends EvalFun
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/DoubleRound.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/DoubleRound.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/DoubleRound.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/DoubleRound.java Wed Aug 27 00:39:58 2014
@@ -52,4 +52,9 @@ public class DoubleRound extends EvalFun
public Schema outputSchema(Schema input) {
return new Schema(new Schema.FieldSchema(getSchemaName(this.getClass().getName().toLowerCase(), input), DataType.LONG));
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/DoubleRoundTo.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/DoubleRoundTo.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/DoubleRoundTo.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/DoubleRoundTo.java Wed Aug 27 00:39:58 2014
@@ -21,7 +21,6 @@ package org.apache.pig.builtin;
import java.io.IOException;
import java.util.List;
import java.util.ArrayList;
-
import java.math.BigDecimal;
import java.math.RoundingMode;
@@ -96,4 +95,9 @@ public class DoubleRoundTo extends EvalF
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/ENDSWITH.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/ENDSWITH.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/ENDSWITH.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/ENDSWITH.java Wed Aug 27 00:39:58 2014
@@ -20,6 +20,7 @@ package org.apache.pig.builtin;
import java.util.ArrayList;
import java.util.List;
+
import org.apache.pig.EvalFunc;
import org.apache.pig.FuncSpec;
import org.apache.pig.PigWarning;
@@ -72,4 +73,9 @@ public class ENDSWITH extends EvalFunc<B
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/EqualsIgnoreCase.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/EqualsIgnoreCase.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/EqualsIgnoreCase.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/EqualsIgnoreCase.java Wed Aug 27 00:39:58 2014
@@ -31,24 +31,29 @@ import org.apache.pig.data.Tuple;
public class EqualsIgnoreCase extends FilterFunc {
-@Override
-public Boolean exec(Tuple input) throws IOException {
- if (input == null || input.size() == 0) {
- return null;
- }
- try{
- String firstStr = input.get(0).toString();
- String secondStr = input.get(1).toString();
- if (firstStr == null) {
- throw new ExecException("First String is NULL");
- }
- if (secondStr == null) {
- throw new ExecException("Second String is NULL");
- }
- return new Boolean(firstStr.equalsIgnoreCase(secondStr));
- } catch(Exception e){
- throw new ExecException(e.getMessage());
- }
- }
+ @Override
+ public Boolean exec(Tuple input) throws IOException {
+ if (input == null || input.size() == 0) {
+ return null;
+ }
+ try {
+ String firstStr = input.get(0).toString();
+ String secondStr = input.get(1).toString();
+ if (firstStr == null) {
+ throw new ExecException("First String is NULL");
+ }
+ if (secondStr == null) {
+ throw new ExecException("Second String is NULL");
+ }
+ return new Boolean(firstStr.equalsIgnoreCase(secondStr));
+ } catch (Exception e) {
+ throw new ExecException(e.getMessage());
+ }
+ }
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/FloatAbs.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/FloatAbs.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/FloatAbs.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/FloatAbs.java Wed Aug 27 00:39:58 2014
@@ -49,4 +49,9 @@ public class FloatAbs extends EvalFunc<F
public Schema outputSchema(Schema input) {
return new Schema(new Schema.FieldSchema(getSchemaName(this.getClass().getName().toLowerCase(), input), DataType.FLOAT));
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/FloatRound.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/FloatRound.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/FloatRound.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/FloatRound.java Wed Aug 27 00:39:58 2014
@@ -54,4 +54,9 @@ public class FloatRound extends EvalFunc
public Schema outputSchema(Schema input) {
return new Schema(new Schema.FieldSchema(getSchemaName(this.getClass().getName().toLowerCase(), input), DataType.INTEGER));
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/FloatRoundTo.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/FloatRoundTo.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/FloatRoundTo.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/FloatRoundTo.java Wed Aug 27 00:39:58 2014
@@ -21,7 +21,6 @@ package org.apache.pig.builtin;
import java.io.IOException;
import java.util.List;
import java.util.ArrayList;
-
import java.math.BigDecimal;
import java.math.RoundingMode;
@@ -96,4 +95,9 @@ public class FloatRoundTo extends EvalFu
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/GetDay.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/GetDay.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/GetDay.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/GetDay.java Wed Aug 27 00:39:58 2014
@@ -93,4 +93,9 @@ public class GetDay extends EvalFunc<Int
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/GetHour.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/GetHour.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/GetHour.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/GetHour.java Wed Aug 27 00:39:58 2014
@@ -93,4 +93,9 @@ public class GetHour extends EvalFunc<In
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/GetMilliSecond.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/GetMilliSecond.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/GetMilliSecond.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/GetMilliSecond.java Wed Aug 27 00:39:58 2014
@@ -93,4 +93,9 @@ public class GetMilliSecond extends Eval
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/GetMinute.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/GetMinute.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/GetMinute.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/GetMinute.java Wed Aug 27 00:39:58 2014
@@ -93,4 +93,9 @@ public class GetMinute extends EvalFunc<
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/GetMonth.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/GetMonth.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/GetMonth.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/GetMonth.java Wed Aug 27 00:39:58 2014
@@ -93,4 +93,9 @@ public class GetMonth extends EvalFunc<I
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/GetSecond.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/GetSecond.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/GetSecond.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/GetSecond.java Wed Aug 27 00:39:58 2014
@@ -93,4 +93,9 @@ public class GetSecond extends EvalFunc<
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/GetWeek.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/GetWeek.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/GetWeek.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/GetWeek.java Wed Aug 27 00:39:58 2014
@@ -93,4 +93,9 @@ public class GetWeek extends EvalFunc<In
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/GetWeekYear.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/GetWeekYear.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/GetWeekYear.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/GetWeekYear.java Wed Aug 27 00:39:58 2014
@@ -93,4 +93,9 @@ public class GetWeekYear extends EvalFun
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/GetYear.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/GetYear.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/GetYear.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/GetYear.java Wed Aug 27 00:39:58 2014
@@ -94,5 +94,9 @@ public class GetYear extends EvalFunc<In
return funcList;
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/HoursBetween.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/HoursBetween.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/HoursBetween.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/HoursBetween.java Wed Aug 27 00:39:58 2014
@@ -103,4 +103,9 @@ public class HoursBetween extends EvalFu
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/INDEXOF.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/INDEXOF.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/INDEXOF.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/INDEXOF.java Wed Aug 27 00:39:58 2014
@@ -20,7 +20,6 @@ package org.apache.pig.builtin;
import java.io.IOException;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.pig.EvalFunc;
@@ -72,4 +71,8 @@ public class INDEXOF extends EvalFunc<In
return new Schema(new Schema.FieldSchema(null, DataType.INTEGER));
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
\ No newline at end of file
Modified: pig/trunk/src/org/apache/pig/builtin/INVERSEMAP.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/INVERSEMAP.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/INVERSEMAP.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/INVERSEMAP.java Wed Aug 27 00:39:58 2014
@@ -113,4 +113,8 @@ public class INVERSEMAP extends EvalFunc
return inverseMap;
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/IntAbs.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/IntAbs.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/IntAbs.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/IntAbs.java Wed Aug 27 00:39:58 2014
@@ -54,4 +54,9 @@ public class IntAbs extends EvalFunc<Int
public Schema outputSchema(Schema input) {
return new Schema(new Schema.FieldSchema(getSchemaName(this.getClass().getName().toLowerCase(), input), DataType.INTEGER));
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/IsEmpty.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/IsEmpty.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/IsEmpty.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/IsEmpty.java Wed Aug 27 00:39:58 2014
@@ -52,4 +52,8 @@ public class IsEmpty extends FilterFunc
}
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/KEYSET.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/KEYSET.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/KEYSET.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/KEYSET.java Wed Aug 27 00:39:58 2014
@@ -95,4 +95,9 @@ public class KEYSET extends EvalFunc<Dat
return bagSchema;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
\ No newline at end of file
Modified: pig/trunk/src/org/apache/pig/builtin/LAST_INDEX_OF.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/LAST_INDEX_OF.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/LAST_INDEX_OF.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/LAST_INDEX_OF.java Wed Aug 27 00:39:58 2014
@@ -82,4 +82,9 @@ public class LAST_INDEX_OF extends EvalF
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/LCFIRST.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/LCFIRST.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/LCFIRST.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/LCFIRST.java Wed Aug 27 00:39:58 2014
@@ -50,4 +50,9 @@ public class LCFIRST extends EvalFunc<St
public Schema outputSchema(Schema input) {
return new Schema(new Schema.FieldSchema(null, DataType.CHARARRAY));
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/LOWER.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/LOWER.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/LOWER.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/LOWER.java Wed Aug 27 00:39:58 2014
@@ -77,4 +77,9 @@ public class LOWER extends EvalFunc<Stri
return funcList;
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
+
}
\ No newline at end of file
Modified: pig/trunk/src/org/apache/pig/builtin/LTRIM.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/LTRIM.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/LTRIM.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/LTRIM.java Wed Aug 27 00:39:58 2014
@@ -67,4 +67,8 @@ public class LTRIM extends EvalFunc<Stri
return funcList;
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/LongAbs.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/LongAbs.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/LongAbs.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/LongAbs.java Wed Aug 27 00:39:58 2014
@@ -49,4 +49,9 @@ public class LongAbs extends EvalFunc<Lo
public Schema outputSchema(Schema input) {
return new Schema(new Schema.FieldSchema(getSchemaName(this.getClass().getName().toLowerCase(), input), DataType.LONG));
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/MapSize.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/MapSize.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/MapSize.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/MapSize.java Wed Aug 27 00:39:58 2014
@@ -53,4 +53,8 @@ public class MapSize extends EvalFunc<Lo
return new Schema(new Schema.FieldSchema(null, DataType.LONG));
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/MilliSecondsBetween.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/MilliSecondsBetween.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/MilliSecondsBetween.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/MilliSecondsBetween.java Wed Aug 27 00:39:58 2014
@@ -103,4 +103,9 @@ public class MilliSecondsBetween extends
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/MinutesBetween.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/MinutesBetween.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/MinutesBetween.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/MinutesBetween.java Wed Aug 27 00:39:58 2014
@@ -104,4 +104,9 @@ public class MinutesBetween extends Eval
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/MonthsBetween.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/MonthsBetween.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/MonthsBetween.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/MonthsBetween.java Wed Aug 27 00:39:58 2014
@@ -106,4 +106,9 @@ public class MonthsBetween extends EvalF
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/PluckTuple.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/PluckTuple.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/PluckTuple.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/PluckTuple.java Wed Aug 27 00:39:58 2014
@@ -117,4 +117,9 @@ public class PluckTuple extends EvalFunc
throw new RuntimeException(e); // Should never happen
}
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
\ No newline at end of file
Modified: pig/trunk/src/org/apache/pig/builtin/REGEX_EXTRACT.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/REGEX_EXTRACT.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/REGEX_EXTRACT.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/REGEX_EXTRACT.java Wed Aug 27 00:39:58 2014
@@ -118,4 +118,9 @@ public class REGEX_EXTRACT extends EvalF
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/REGEX_EXTRACT_ALL.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/REGEX_EXTRACT_ALL.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/REGEX_EXTRACT_ALL.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/REGEX_EXTRACT_ALL.java Wed Aug 27 00:39:58 2014
@@ -113,5 +113,10 @@ public class REGEX_EXTRACT_ALL extends E
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/REPLACE.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/REPLACE.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/REPLACE.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/REPLACE.java Wed Aug 27 00:39:58 2014
@@ -81,4 +81,9 @@ public class REPLACE extends EvalFunc<St
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/ROUND.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/ROUND.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/ROUND.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/ROUND.java Wed Aug 27 00:39:58 2014
@@ -74,4 +74,9 @@ public class ROUND extends EvalFunc<Long
funcList.add(new FuncSpec(FloatRound.class.getName(), new Schema(new Schema.FieldSchema(null, DataType.FLOAT))));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/ROUND_TO.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/ROUND_TO.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/ROUND_TO.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/ROUND_TO.java Wed Aug 27 00:39:58 2014
@@ -21,7 +21,6 @@ package org.apache.pig.builtin;
import java.io.IOException;
import java.util.List;
import java.util.ArrayList;
-
import java.math.BigDecimal;
import java.math.RoundingMode;
@@ -125,4 +124,9 @@ public class ROUND_TO extends EvalFunc<D
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/RTRIM.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/RTRIM.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/RTRIM.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/RTRIM.java Wed Aug 27 00:39:58 2014
@@ -67,4 +67,8 @@ public class RTRIM extends EvalFunc<Stri
return funcList;
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/RollupDimensions.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/RollupDimensions.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/RollupDimensions.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/RollupDimensions.java Wed Aug 27 00:39:58 2014
@@ -88,4 +88,9 @@ public class RollupDimensions extends Ev
throw new RuntimeException(e);
}
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/SIZE.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/SIZE.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/SIZE.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/SIZE.java Wed Aug 27 00:39:58 2014
@@ -96,4 +96,8 @@ public class SIZE extends EvalFunc<Long>
return funcList;
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/SPRINTF.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/SPRINTF.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/SPRINTF.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/SPRINTF.java Wed Aug 27 00:39:58 2014
@@ -18,7 +18,6 @@
package org.apache.pig.builtin;
import java.io.IOException;
-
import java.util.Formatter;
import org.apache.pig.EvalFunc;
@@ -26,7 +25,6 @@ import org.apache.pig.PigException;
import org.apache.pig.data.DataType;
import org.apache.pig.data.Tuple;
import org.apache.pig.impl.logicalLayer.schema.Schema;
-
import org.apache.pig.backend.executionengine.ExecException;
/**
@@ -80,4 +78,9 @@ public class SPRINTF extends EvalFunc<St
public SchemaType getSchemaType() {
return SchemaType.VARARG;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/STARTSWITH.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/STARTSWITH.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/STARTSWITH.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/STARTSWITH.java Wed Aug 27 00:39:58 2014
@@ -20,6 +20,7 @@ package org.apache.pig.builtin;
import java.util.ArrayList;
import java.util.List;
+
import org.apache.pig.EvalFunc;
import org.apache.pig.FuncSpec;
import org.apache.pig.PigWarning;
@@ -72,4 +73,9 @@ public class STARTSWITH extends EvalFunc
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/STRSPLIT.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/STRSPLIT.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/STRSPLIT.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/STRSPLIT.java Wed Aug 27 00:39:58 2014
@@ -18,7 +18,6 @@
package org.apache.pig.builtin;
import java.io.IOException;
-
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
@@ -109,4 +108,9 @@ public class STRSPLIT extends EvalFunc<T
funcList.add(new FuncSpec(this.getClass().getName(), s2));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/SUBSTRING.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/SUBSTRING.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/SUBSTRING.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/SUBSTRING.java Wed Aug 27 00:39:58 2014
@@ -89,4 +89,9 @@ public class SUBSTRING extends EvalFunc<
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/SUBTRACT.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/SUBTRACT.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/SUBTRACT.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/SUBTRACT.java Wed Aug 27 00:39:58 2014
@@ -94,4 +94,8 @@ public class SUBTRACT extends EvalFunc<D
return set;
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/SecondsBetween.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/SecondsBetween.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/SecondsBetween.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/SecondsBetween.java Wed Aug 27 00:39:58 2014
@@ -104,4 +104,9 @@ public class SecondsBetween extends Eval
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/StringConcat.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/StringConcat.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/StringConcat.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/StringConcat.java Wed Aug 27 00:39:58 2014
@@ -63,4 +63,9 @@ public class StringConcat extends EvalFu
public SchemaType getSchemaType() {
return SchemaType.VARARG;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/StringSize.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/StringSize.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/StringSize.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/StringSize.java Wed Aug 27 00:39:58 2014
@@ -18,6 +18,7 @@
package org.apache.pig.builtin;
import java.io.IOException;
+
import org.apache.pig.EvalFunc;
import org.apache.pig.PigException;
import org.apache.pig.backend.executionengine.ExecException;
@@ -50,4 +51,8 @@ public class StringSize extends EvalFunc
return new Schema(new Schema.FieldSchema(null, DataType.LONG));
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/SubtractDuration.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/SubtractDuration.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/SubtractDuration.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/SubtractDuration.java Wed Aug 27 00:39:58 2014
@@ -92,4 +92,9 @@ public class SubtractDuration extends Ev
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/TOBAG.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/TOBAG.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/TOBAG.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/TOBAG.java Wed Aug 27 00:39:58 2014
@@ -159,7 +159,10 @@ public class TOBAG extends EvalFunc<Data
}
return Schema.equals(currentSchema, newSchema, false, true);
}
-
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/TOKENIZE.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/TOKENIZE.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/TOKENIZE.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/TOKENIZE.java Wed Aug 27 00:39:58 2014
@@ -125,4 +125,9 @@ public class TOKENIZE extends EvalFunc<D
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
};
Modified: pig/trunk/src/org/apache/pig/builtin/TOMAP.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/TOMAP.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/TOMAP.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/TOMAP.java Wed Aug 27 00:39:58 2014
@@ -61,4 +61,8 @@ public class TOMAP extends EvalFunc<Map>
return new Schema(new Schema.FieldSchema(null, DataType.MAP));
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/TOTUPLE.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/TOTUPLE.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/TOTUPLE.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/TOTUPLE.java Wed Aug 27 00:39:58 2014
@@ -18,6 +18,7 @@
package org.apache.pig.builtin;
import java.io.IOException;
+
import org.apache.pig.EvalFunc;
import org.apache.pig.data.DataType;
import org.apache.pig.data.Tuple;
@@ -50,4 +51,8 @@ public class TOTUPLE extends EvalFunc<Tu
}
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/TRIM.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/TRIM.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/TRIM.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/TRIM.java Wed Aug 27 00:39:58 2014
@@ -67,4 +67,8 @@ public class TRIM extends EvalFunc<Strin
return funcList;
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/ToDate.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/ToDate.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/ToDate.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/ToDate.java Wed Aug 27 00:39:58 2014
@@ -123,4 +123,9 @@ public class ToDate extends EvalFunc<Dat
public static DateTime extractDateTime(String dtStr) {
return isoDateTimeFormatter.parseDateTime(dtStr);
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/ToDate2ARGS.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/ToDate2ARGS.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/ToDate2ARGS.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/ToDate2ARGS.java Wed Aug 27 00:39:58 2014
@@ -48,4 +48,8 @@ public class ToDate2ARGS extends EvalFun
//}
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/ToDate3ARGS.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/ToDate3ARGS.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/ToDate3ARGS.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/ToDate3ARGS.java Wed Aug 27 00:39:58 2014
@@ -44,4 +44,8 @@ public class ToDate3ARGS extends EvalFun
return dtf.withZone(dtz).parseDateTime(DataType.toString(input.get(0)));
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/ToDateISO.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/ToDateISO.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/ToDateISO.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/ToDateISO.java Wed Aug 27 00:39:58 2014
@@ -38,4 +38,8 @@ public class ToDateISO extends EvalFunc<
return ToDate.extractDateTime(dtStr);
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/ToMilliSeconds.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/ToMilliSeconds.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/ToMilliSeconds.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/ToMilliSeconds.java Wed Aug 27 00:39:58 2014
@@ -94,4 +94,9 @@ public class ToMilliSeconds extends Eval
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/ToString.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/ToString.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/ToString.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/ToString.java Wed Aug 27 00:39:58 2014
@@ -69,5 +69,9 @@ public class ToString extends EvalFunc<S
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
-
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/ToUnixTime.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/ToUnixTime.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/ToUnixTime.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/ToUnixTime.java Wed Aug 27 00:39:58 2014
@@ -92,4 +92,9 @@ public class ToUnixTime extends EvalFunc
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/TupleSize.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/TupleSize.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/TupleSize.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/TupleSize.java Wed Aug 27 00:39:58 2014
@@ -18,6 +18,7 @@
package org.apache.pig.builtin;
import java.io.IOException;
+
import org.apache.pig.EvalFunc;
import org.apache.pig.PigException;
import org.apache.pig.backend.executionengine.ExecException;
@@ -48,4 +49,8 @@ public class TupleSize extends EvalFunc<
return new Schema(new Schema.FieldSchema(null, DataType.LONG));
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/UCFIRST.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/UCFIRST.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/UCFIRST.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/UCFIRST.java Wed Aug 27 00:39:58 2014
@@ -50,4 +50,9 @@ public class UCFIRST extends EvalFunc<St
public Schema outputSchema(Schema input) {
return new Schema(new Schema.FieldSchema(null, DataType.CHARARRAY));
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/UPPER.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/UPPER.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/UPPER.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/UPPER.java Wed Aug 27 00:39:58 2014
@@ -86,4 +86,8 @@ public class UPPER extends EvalFunc<Stri
return funcList;
}
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/VALUELIST.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/VALUELIST.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/VALUELIST.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/VALUELIST.java Wed Aug 27 00:39:58 2014
@@ -122,4 +122,9 @@ public class VALUELIST extends EvalFunc<
return bagSchema;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
\ No newline at end of file
Modified: pig/trunk/src/org/apache/pig/builtin/VALUESET.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/VALUESET.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/VALUESET.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/VALUESET.java Wed Aug 27 00:39:58 2014
@@ -133,4 +133,9 @@ public class VALUESET extends EvalFunc<D
}
return bagSchema;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/WeeksBetween.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/WeeksBetween.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/WeeksBetween.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/WeeksBetween.java Wed Aug 27 00:39:58 2014
@@ -105,5 +105,10 @@ public class WeeksBetween extends EvalFu
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/builtin/YearsBetween.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/builtin/YearsBetween.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/YearsBetween.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/YearsBetween.java Wed Aug 27 00:39:58 2014
@@ -106,4 +106,9 @@ public class YearsBetween extends EvalFu
funcList.add(new FuncSpec(this.getClass().getName(), s));
return funcList;
}
+
+ @Override
+ public boolean allowCompileTimeCalculation() {
+ return true;
+ }
}
Modified: pig/trunk/src/org/apache/pig/newplan/BaseOperatorPlan.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/BaseOperatorPlan.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/BaseOperatorPlan.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/BaseOperatorPlan.java Wed Aug 27 00:39:58 2014
@@ -20,7 +20,9 @@ package org.apache.pig.newplan;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
+import java.util.ArrayDeque;
import java.util.ArrayList;
+import java.util.Deque;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -479,4 +481,50 @@ public abstract class BaseOperatorPlan i
return false;
}
+ /**
+ * Move everything below a given operator to the new operator plan. The specified operator will
+ * be moved and will be the root of the new operator plan
+ * @param root Operator to move everything after
+ * @param newPlan new operator plan to move things into
+ * @throws PlanException
+ */
+ public void moveTree(Operator root, BaseOperatorPlan newPlan) throws FrontendException {
+ Deque<Operator> queue = new ArrayDeque<Operator>();
+ newPlan.add(root);
+ root.setPlan(newPlan);
+ queue.addLast(root);
+ while (!queue.isEmpty()) {
+ Operator node = queue.poll();
+ if (getSuccessors(node)!=null) {
+ for (Operator succ : getSuccessors(node)) {
+ if (!queue.contains(succ)) {
+ queue.addLast(succ);
+ newPlan.add(succ);
+ succ.setPlan(newPlan);
+ newPlan.connect(node, succ);
+ }
+ }
+ }
+ }
+
+ trimBelow(root);
+ }
+
+ /**
+ * Trim everything below a given operator. The specified operator will
+ * NOT be removed.
+ * @param op Operator to trim everything after.
+ * @throws FrontendException
+ */
+ public void trimBelow(Operator op) throws FrontendException {
+ if (getSuccessors(op) != null) {
+ List<Operator> succs = new ArrayList<Operator>();
+ succs.addAll(getSuccessors(op));
+ for (Operator succ : succs) {
+ disconnect(op, succ);
+ trimBelow(succ);
+ remove(succ);
+ }
+ }
+ }
}
Modified: pig/trunk/src/org/apache/pig/newplan/logical/expression/ConstantExpression.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/expression/ConstantExpression.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/logical/expression/ConstantExpression.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/logical/expression/ConstantExpression.java Wed Aug 27 00:39:58 2014
@@ -19,10 +19,8 @@
package org.apache.pig.newplan.logical.expression;
import org.apache.pig.PigException;
-import org.apache.pig.backend.executionengine.ExecException;
import org.apache.pig.data.DataType;
import org.apache.pig.impl.logicalLayer.FrontendException;
-import org.apache.pig.impl.logicalLayer.schema.SchemaMergeException;
import org.apache.pig.newplan.Operator;
import org.apache.pig.newplan.OperatorPlan;
import org.apache.pig.newplan.PlanVisitor;
@@ -38,7 +36,9 @@ public class ConstantExpression extends
// Stupid Java needs a union
Object val;
-
+
+ // Remember data type when the value is null
+ byte type = DataType.NULL;
/**
* Adds expression to the plan
* @param plan LogicalExpressionPlan this constant is a part of.
@@ -101,14 +101,25 @@ public class ConstantExpression extends
);
}
uidOnlyFieldSchema = fieldSchema.mergeUid(uidOnlyFieldSchema);
+ if (type != DataType.NULL && fieldSchema.type == DataType.BYTEARRAY && val == null) {
+ fieldSchema.type = type;
+ }
return fieldSchema;
}
@Override
public LogicalExpression deepCopy(LogicalExpressionPlan lgExpPlan) throws FrontendException{
- LogicalExpression copy = new ConstantExpression(lgExpPlan, this.getValue());
+ ConstantExpression copy = new ConstantExpression(lgExpPlan, this.getValue());
+ copy.type = this.type;
copy.setLocation( new SourceLocation( location ) );
return copy;
}
+ public void inheritSchema(LogicalExpression expr) throws FrontendException {
+ fieldSchema = expr.getFieldSchema();
+ uidOnlyFieldSchema = fieldSchema.mergeUid(uidOnlyFieldSchema);
+ if (fieldSchema.type != DataType.NULL) {
+ type = fieldSchema.type;
+ }
+ }
}
Modified: pig/trunk/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/logical/expression/UserFuncExpression.java Wed Aug 27 00:39:58 2014
@@ -403,4 +403,11 @@ public class UserFuncExpression extends
public boolean isViaDefine() {
return viaDefine;
}
+
+ public EvalFunc<?> getEvalFunc() {
+ if (ef==null) {
+ ef = (EvalFunc<?>) PigContext.instantiateFuncFromSpec(mFuncSpec);
+ }
+ return ef;
+ }
}
Modified: pig/trunk/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanOptimizer.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanOptimizer.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanOptimizer.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/logical/optimizer/LogicalPlanOptimizer.java Wed Aug 27 00:39:58 2014
@@ -28,14 +28,16 @@ import com.google.common.collect.TreeMul
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.pig.impl.PigContext;
import org.apache.pig.newplan.OperatorPlan;
import org.apache.pig.newplan.logical.rules.AddForEach;
import org.apache.pig.newplan.logical.rules.ColumnMapKeyPrune;
import org.apache.pig.newplan.logical.rules.FilterAboveForeach;
+import org.apache.pig.newplan.logical.rules.FilterConstantCalculator;
+import org.apache.pig.newplan.logical.rules.ForEachConstantCalculator;
import org.apache.pig.newplan.logical.rules.GroupByConstParallelSetter;
import org.apache.pig.newplan.logical.rules.LimitOptimizer;
import org.apache.pig.newplan.logical.rules.LoadTypeCastInserter;
-import org.apache.pig.newplan.logical.rules.LogicalExpressionSimplifier;
import org.apache.pig.newplan.logical.rules.MergeFilter;
import org.apache.pig.newplan.logical.rules.MergeForEach;
import org.apache.pig.newplan.logical.rules.PartitionFilterOptimizer;
@@ -53,16 +55,23 @@ public class LogicalPlanOptimizer extend
private Set<String> mRulesOff = null;
private boolean allRulesDisabled = false;
private SetMultimap<RulesReportKey, String> rulesReport = TreeMultimap.create();
+ private PigContext pc = null;
+ public LogicalPlanOptimizer(OperatorPlan p, int iterations, Set<String> turnOffRules) {
+ this(p, iterations, turnOffRules, null);
+ }
/**
* Create a new LogicalPlanOptimizer.
* @param p Plan to optimize.
* @param iterations Maximum number of optimizer iterations.
* @param turnOffRules Optimization rules to disable. "all" disables all non-mandatory
* rules. null enables all rules.
+ * @param pc PigContext object
*/
- public LogicalPlanOptimizer(OperatorPlan p, int iterations, Set<String> turnOffRules) {
+ public LogicalPlanOptimizer(OperatorPlan p, int iterations, Set<String> turnOffRules, PigContext
+ pc) {
super(p, null, iterations);
+ this.pc = pc;
mRulesOff = turnOffRules == null ? new HashSet<String>() : turnOffRules;
if (mRulesOff.contains("all")) {
allRulesDisabled = true;
@@ -78,8 +87,11 @@ public class LogicalPlanOptimizer extend
// Logical expression simplifier
Set <Rule> s = new HashSet<Rule>();
- // add logical expression simplification rule
- Rule r = new LogicalExpressionSimplifier("FilterLogicExpressionSimplifier");
+ // add constant calculator rule
+ Rule r = new FilterConstantCalculator("ConstantCalculator", pc);
+ checkAndAddRule(s, r);
+ ls.add(s);
+ r = new ForEachConstantCalculator("ConstantCalculator", pc);
checkAndAddRule(s, r);
ls.add(s);
Modified: pig/trunk/src/org/apache/pig/newplan/logical/relational/LogicalPlan.java
URL: http://svn.apache.org/viewvc/pig/trunk/src/org/apache/pig/newplan/logical/relational/LogicalPlan.java?rev=1620769&r1=1620768&r2=1620769&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/newplan/logical/relational/LogicalPlan.java (original)
+++ pig/trunk/src/org/apache/pig/newplan/logical/relational/LogicalPlan.java Wed Aug 27 00:39:58 2014
@@ -27,6 +27,8 @@ import java.util.List;
import org.apache.pig.PigConstants;
import org.apache.pig.PigException;
+import org.apache.pig.backend.hadoop.datastorage.ConfigurationUtil;
+import org.apache.pig.data.SchemaTupleBackend;
import org.apache.pig.impl.PigContext;
import org.apache.pig.impl.PigImplConstants;
import org.apache.pig.impl.logicalLayer.FrontendException;
@@ -263,9 +265,15 @@ public class LogicalPlan extends BaseOpe
disabledOptimizerRules.add("GroupByConstParallelSetter");
}
+ try {
+ SchemaTupleBackend.initialize(ConfigurationUtil.toConfiguration(pigContext.getProperties(), true),
+ pigContext);
+ } catch (IOException e) {
+ throw new FrontendException(e);
+ }
// run optimizer
LogicalPlanOptimizer optimizer = new LogicalPlanOptimizer(this, 100,
- disabledOptimizerRules);
+ disabledOptimizerRules, pigContext);
optimizer.optimize();
}
}