You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ga...@apache.org on 2013/04/19 00:12:52 UTC
svn commit: r1469595 - in /pig/trunk/contrib: CHANGES.txt
piggybank/java/src/test/java/org/apache/pig/piggybank/test/evaluation/string/ENDSWITH.java
Author: gates
Date: Thu Apr 18 22:12:52 2013
New Revision: 1469595
URL: http://svn.apache.org/r1469595
Log:
PIG-3164 Pig current releases lack a UDF endsWith.This UDF tests if a given string ends with the specified suffix.
Added:
pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/evaluation/string/ENDSWITH.java
Modified:
pig/trunk/contrib/CHANGES.txt
Modified: pig/trunk/contrib/CHANGES.txt
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/CHANGES.txt?rev=1469595&r1=1469594&r2=1469595&view=diff
==============================================================================
--- pig/trunk/contrib/CHANGES.txt (original)
+++ pig/trunk/contrib/CHANGES.txt Thu Apr 18 22:12:52 2013
@@ -24,6 +24,8 @@ INCOMPATIBLE CHANGES
IMPROVEMENTS
+PIG-3164 Pig current releases lack a UDF endsWith.This UDF tests if a given string ends with the specified suffix. (Anuroopa George via gates)
+
PIG-2909 Add a new option for ignoring corrupted files to AvroStorage load func (cheolsoo via gates)
PIG-2202 AvroStorage doesn't work with Avro 1.5.1 (billgraham via gates)
Added: pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/evaluation/string/ENDSWITH.java
URL: http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/evaluation/string/ENDSWITH.java?rev=1469595&view=auto
==============================================================================
--- pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/evaluation/string/ENDSWITH.java (added)
+++ pig/trunk/contrib/piggybank/java/src/test/java/org/apache/pig/piggybank/test/evaluation/string/ENDSWITH.java Thu Apr 18 22:12:52 2013
@@ -0,0 +1,58 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.pig.piggybank.test.evaluation.string;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.pig.EvalFunc;
+import org.apache.pig.FuncSpec;
+import org.apache.pig.data.DataType;
+import org.apache.pig.data.Tuple;
+import org.apache.pig.backend.executionengine.ExecException;
+import org.apache.pig.impl.logicalLayer.FrontendException;
+import org.apache.pig.impl.logicalLayer.schema.Schema;
+
+/**
+ * Pig UDF to test input <code>tuple.get(0)</code> against <code>tuple.get(1)</code>
+ * to determine if the first argument ends with the string in the second.
+ */
+public class ENDSWITH extends EvalFunc<Boolean> throws ExecException{
+ @Override
+ public Boolean exec(Tuple tuple) {
+ if (tuple == null || tuple.size() != 2) {
+ return null;
+ }
+ String argument = null;
+ String testAgainst = null;
+ argument = (String) tuple.get(0);
+ testAgainst = (String) tuple.get(1);
+ return argument.endsWith(testAgainst);
+
+ }
+
+ @Override
+ public List<FuncSpec> getArgToFuncMapping() throws FrontendException {
+ List<FuncSpec> funcList = new ArrayList<FuncSpec>();
+ Schema s = new Schema();
+ s.add(new Schema.FieldSchema(null, DataType.CHARARRAY));
+ s.add(new Schema.FieldSchema(null, DataType.CHARARRAY));
+ funcList.add(new FuncSpec(this.getClass().getName(), s));
+ return funcList;
+ }
+}