You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ch...@apache.org on 2013/07/26 01:55:32 UTC
svn commit: r1507156 - in /pig/trunk: CHANGES.txt
src/org/apache/pig/builtin/STARTSWITH.java
Author: cheolsoo
Date: Thu Jul 25 23:55:30 2013
New Revision: 1507156
URL: http://svn.apache.org/r1507156
Log:
PIG-3393: STARTSWITH udf doesn't override outputSchema method (sriramkrishnan via cheolsoo)
Modified:
pig/trunk/CHANGES.txt
pig/trunk/src/org/apache/pig/builtin/STARTSWITH.java
Modified: pig/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/CHANGES.txt?rev=1507156&r1=1507155&r2=1507156&view=diff
==============================================================================
--- pig/trunk/CHANGES.txt (original)
+++ pig/trunk/CHANGES.txt Thu Jul 25 23:55:30 2013
@@ -204,6 +204,8 @@ PIG-3013: BinInterSedes improve chararra
BUG FIXES
+PIG-3393: STARTSWITH udf doesn't override outputSchema method (sriramkrishnan via cheolsoo)
+
PIG-3389: "Set job.name" does not work with dump command (cheolsoo)
PIG-3387: Miss spelling in test code "TestBuiltin.java" (sarutak via cheolsoo)
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=1507156&r1=1507155&r2=1507156&view=diff
==============================================================================
--- pig/trunk/src/org/apache/pig/builtin/STARTSWITH.java (original)
+++ pig/trunk/src/org/apache/pig/builtin/STARTSWITH.java Thu Jul 25 23:55:30 2013
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.pig.EvalFunc;
import org.apache.pig.FuncSpec;
+import org.apache.pig.PigWarning;
import org.apache.pig.data.DataType;
import org.apache.pig.data.Tuple;
import org.apache.pig.backend.executionengine.ExecException;
@@ -36,6 +37,7 @@ public class STARTSWITH extends EvalFunc
@Override
public Boolean exec(Tuple tuple) {
if (tuple == null || tuple.size() != 2) {
+ warn("invalid number of arguments to STARTSWITH", PigWarning.UDF_WARNING_1);
return null;
}
String argument = null;
@@ -44,14 +46,24 @@ public class STARTSWITH extends EvalFunc
argument = (String) tuple.get(0);
testAgainst = (String) tuple.get(1);
return argument.startsWith(testAgainst);
- } catch (ExecException exe) {
- System.err.println("UDF STARTSWITH threw ExecException while processing '" +
- argument + "' while attempting to locate prefix '" + testAgainst + "'");
- return null;
+ } catch (NullPointerException npe) {
+ warn(npe.toString(), PigWarning.UDF_WARNING_2);
+ return null;
+ } catch (ClassCastException cce) {
+ warn(cce.toString(), PigWarning.UDF_WARNING_3);
+ return null;
+ } catch (ExecException ee) {
+ warn(ee.toString(), PigWarning.UDF_WARNING_4);
+ return null;
}
}
@Override
+ public Schema outputSchema(Schema input) {
+ return new Schema(new Schema.FieldSchema(null, DataType.BOOLEAN));
+ }
+
+ @Override
public List<FuncSpec> getArgToFuncMapping() throws FrontendException {
List<FuncSpec> funcList = new ArrayList<FuncSpec>();
Schema s = new Schema();