You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by na...@apache.org on 2009/04/15 00:54:45 UTC
svn commit: r764994 [3/12] - in /hadoop/hive/trunk: ./ data/conf/
eclipse-templates/ metastore/src/java/org/apache/hadoop/hive/metastore/ ql/
ql/lib/ ql/src/java/org/apache/hadoop/hive/ql/exec/
ql/src/java/org/apache/hadoop/hive/ql/io/ ql/src/java/org/...
Added: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBaseNumericUnaryOp.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBaseNumericUnaryOp.java?rev=764994&view=auto
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBaseNumericUnaryOp.java (added)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBaseNumericUnaryOp.java Tue Apr 14 22:54:39 2009
@@ -0,0 +1,56 @@
+/**
+ * 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.hadoop.hive.ql.udf;
+
+import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
+
+/**
+ * Base class for numeric operators like +, -, / etc. All these operators
+ * share a common method resolver (NumericOpMethodResolver).
+ */
+public abstract class UDFBaseNumericUnaryOp extends UDF {
+
+ /**
+ * Constructor.
+ */
+ public UDFBaseNumericUnaryOp() {
+ super();
+ }
+
+ protected ByteWritable byteWritable = new ByteWritable();
+ protected ShortWritable shortWritable = new ShortWritable();
+ protected IntWritable intWritable = new IntWritable();
+ protected LongWritable longWritable = new LongWritable();
+ protected FloatWritable floatWritable = new FloatWritable();
+ protected DoubleWritable doubleWritable = new DoubleWritable();
+
+ public abstract ByteWritable evaluate(ByteWritable a);
+ public abstract ShortWritable evaluate(ShortWritable a);
+ public abstract IntWritable evaluate(IntWritable a);
+ public abstract LongWritable evaluate(LongWritable a);
+ public abstract FloatWritable evaluate(FloatWritable a);
+ public abstract DoubleWritable evaluate(DoubleWritable a);
+
+}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCeil.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCeil.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCeil.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFCeil.java Tue Apr 14 22:54:39 2009
@@ -21,19 +21,23 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.io.LongWritable;
public class UDFCeil extends UDF {
private static Log LOG = LogFactory.getLog(UDFCeil.class.getName());
+ LongWritable longWritable = new LongWritable();
public UDFCeil() {
}
- public Long evaluate(Double i) {
+ public LongWritable evaluate(DoubleWritable i) {
if (i == null) {
return null;
} else {
- return Long.valueOf((long)Math.ceil(i));
+ longWritable.set((long)Math.ceil(i.get()));
+ return longWritable;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConcat.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConcat.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConcat.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFConcat.java Tue Apr 14 22:54:39 2009
@@ -19,6 +19,7 @@
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.Text;
public class UDFConcat extends UDF {
@@ -26,8 +27,12 @@
public UDFConcat() {
}
- public String evaluate(String a, String b) {
- return a+b;
+ Text text = new Text();
+ public Text evaluate(Text a, Text b) {
+ text.clear();
+ text.set(a);
+ text.append(b.getBytes(), 0, b.getLength());
+ return text;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDate.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDate.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDate.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDate.java Tue Apr 14 22:54:39 2009
@@ -26,6 +26,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.Text;
public class UDFDate extends UDF {
@@ -33,8 +34,8 @@
private static Log LOG = LogFactory.getLog(UDFDate.class.getName());
private SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
- private Calendar calendar = Calendar.getInstance();
+ Text t = new Text();
public UDFDate() {
}
@@ -44,11 +45,12 @@
* @param dateString the date string in the format of "yyyy-MM-dd HH:mm:ss" or "yyyy-MM-dd".
* @return the date in the format of "yyyy-MM-dd".
*/
- public String evaluate(String dateString) {
+ public Text evaluate(Text dateString) {
try {
- Date date = formatter.parse(dateString);
- return formatter.format(date);
+ Date date = formatter.parse(dateString.toString());
+ t.set(formatter.format(date));
+ return t;
} catch (ParseException e) {
return null;
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateAdd.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateAdd.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateAdd.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateAdd.java Tue Apr 14 22:54:39 2009
@@ -27,6 +27,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.Text;
public class UDFDateAdd extends UDF {
@@ -36,6 +38,8 @@
private SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
private Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
+ Text result = new Text();
+
public UDFDateAdd() {
}
@@ -50,13 +54,14 @@
* @param days The number of days to add.
* @return the date in the format of "yyyy-MM-dd".
*/
- public String evaluate(String dateString1, int days) {
+ public Text evaluate(Text dateString1, IntWritable days) {
try {
- calendar.setTime(formatter.parse(dateString1));
- calendar.add(Calendar.DAY_OF_MONTH, days);
+ calendar.setTime(formatter.parse(dateString1.toString()));
+ calendar.add(Calendar.DAY_OF_MONTH, days.get());
Date newDate = calendar.getTime();
- return formatter.format(newDate);
+ result.set(formatter.format(newDate));
+ return result;
} catch (ParseException e) {
return null;
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateDiff.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateDiff.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateDiff.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateDiff.java Tue Apr 14 22:54:39 2009
@@ -25,6 +25,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.Text;
public class UDFDateDiff extends UDF {
@@ -33,6 +35,8 @@
private SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+ IntWritable result = new IntWritable();
+
public UDFDateDiff() {
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
}
@@ -46,13 +50,15 @@
* @param dateString2 the date string in the format of "yyyy-MM-dd HH:mm:ss" or "yyyy-MM-dd".
* @return the difference in days.
*/
- public Integer evaluate(String dateString1, String dateString2) {
+ public IntWritable evaluate(Text dateString1, Text dateString2) {
try {
// NOTE: This implementation avoids the extra-second problem
// by comparing with UTC epoch and integer division.
- long diffInMilliSeconds = (formatter.parse(dateString1).getTime() - formatter.parse(dateString2).getTime());
+ long diffInMilliSeconds = (formatter.parse(dateString1.toString()).getTime()
+ - formatter.parse(dateString2.toString()).getTime());
// 86400 is the number of seconds in a day
- return Integer.valueOf((int)(diffInMilliSeconds / (86400 * 1000)));
+ result.set((int)(diffInMilliSeconds / (86400 * 1000)));
+ return result;
} catch (ParseException e) {
return null;
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateSub.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateSub.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateSub.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDateSub.java Tue Apr 14 22:54:39 2009
@@ -27,6 +27,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.Text;
public class UDFDateSub extends UDF {
@@ -36,6 +38,7 @@
private SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
private Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
+ Text result = new Text();
public UDFDateSub() {
}
@@ -50,13 +53,14 @@
* @param days the number of days to subtract.
* @return the date in the format of "yyyy-MM-dd".
*/
- public String evaluate(String dateString1, int days) {
+ public Text evaluate(Text dateString1, IntWritable days) {
try {
- calendar.setTime(formatter.parse(dateString1));
- calendar.add(Calendar.DAY_OF_MONTH, -days);
+ calendar.setTime(formatter.parse(dateString1.toString()));
+ calendar.add(Calendar.DAY_OF_MONTH, -days.get());
Date newDate = calendar.getTime();
- return formatter.format(newDate);
+ result.set(formatter.format(newDate));
+ return result;
} catch (ParseException e) {
return null;
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDayOfMonth.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDayOfMonth.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDayOfMonth.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDayOfMonth.java Tue Apr 14 22:54:39 2009
@@ -26,6 +26,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.Text;
public class UDFDayOfMonth extends UDF {
@@ -35,6 +37,7 @@
private SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
private Calendar calendar = Calendar.getInstance();
+ IntWritable result = new IntWritable();
public UDFDayOfMonth() {
}
@@ -44,12 +47,13 @@
* @param dateString the dateString in the format of "yyyy-MM-dd HH:mm:ss" or "yyyy-MM-dd".
* @return an int from 1 to 31. null if the dateString is not a valid date string.
*/
- public Integer evaluate(String dateString) {
+ public IntWritable evaluate(Text dateString) {
try {
- Date date = formatter.parse(dateString);
+ Date date = formatter.parse(dateString.toString());
calendar.setTime(date);
- return calendar.get(Calendar.DAY_OF_MONTH);
+ result.set(calendar.get(Calendar.DAY_OF_MONTH));
+ return result;
} catch (ParseException e) {
return null;
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDefaultSampleHashFn.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDefaultSampleHashFn.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDefaultSampleHashFn.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFDefaultSampleHashFn.java Tue Apr 14 22:54:39 2009
@@ -19,23 +19,28 @@
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.IntWritable;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class UDFDefaultSampleHashFn extends UDF {
protected final Log LOG;
+ IntWritable result = new IntWritable();
+
public UDFDefaultSampleHashFn() {
LOG = LogFactory.getLog(this.getClass().getName());
}
- public int evaluate(Object o) {
- return o.hashCode();
+ public IntWritable evaluate(Object o) {
+ result.set(o.hashCode());
+ return result;
}
// TODO: For now, only allow up to two columns on which to sample
// Going forward we will allow sampling on an arbitrary number of columns
- public int evaluate(Object o1, Object o2) {
- return o1.hashCode() ^ o2.hashCode();
+ public IntWritable evaluate(Object o1, Object o2) {
+ result.set(o1.hashCode() ^ o2.hashCode());
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFExp.java Tue Apr 14 22:54:39 2009
@@ -21,23 +21,27 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
public class UDFExp extends UDF {
private static Log LOG = LogFactory.getLog(UDFExp.class.getName());
+ DoubleWritable result = new DoubleWritable();
+
public UDFExp() {
}
/**
* Raise e (the base of natural logarithm) to the power of a.
*/
- public Double evaluate(Double a) {
+ public DoubleWritable evaluate(DoubleWritable a) {
if (a == null) {
return null;
} else {
- return Double.valueOf(Math.exp(a));
+ result.set(Math.exp(a.get()));
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFloor.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFloor.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFloor.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFloor.java Tue Apr 14 22:54:39 2009
@@ -21,20 +21,25 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.io.LongWritable;
public class UDFFloor extends UDF {
private static Log LOG = LogFactory.getLog(UDFFloor.class.getName());
+ LongWritable result = new LongWritable();
+
public UDFFloor() {
}
- public Long evaluate(Double i) {
+ public LongWritable evaluate(DoubleWritable i) {
if (i == null) {
return null;
} else {
- return Long.valueOf((long)Math.floor(i));
+ result.set((long)Math.floor(i.get()));
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFromUnixTime.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFromUnixTime.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFromUnixTime.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFFromUnixTime.java Tue Apr 14 22:54:39 2009
@@ -24,6 +24,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.Text;
public class UDFFromUnixTime extends UDF {
@@ -32,11 +34,15 @@
private SimpleDateFormat formatter;
+ Text result = new Text();
+ Text lastFormat = new Text();
+
public UDFFromUnixTime() {
}
- public String evaluate(Integer unixtime) {
- return evaluate(unixtime, "yyyy-MM-dd HH:mm:ss");
+ Text defaultFormat = new Text("yyyy-MM-dd HH:mm:ss");
+ public Text evaluate(IntWritable unixtime) {
+ return evaluate(unixtime, defaultFormat);
}
/**
@@ -45,18 +51,20 @@
* @param format See http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html
* @return a String in the format specified.
*/
- public String evaluate(Integer unixtime, String format) {
+ public Text evaluate(IntWritable unixtime, Text format) {
if (unixtime == null || format == null) {
return null;
}
- if (formatter == null) {
- formatter = new SimpleDateFormat(format);
+ if (!format.equals(lastFormat)) {
+ formatter = new SimpleDateFormat(format.toString());
+ lastFormat.set(format);
}
// convert seconds to milliseconds
- Date date = new Date(unixtime * 1000L);
- return formatter.format(date);
+ Date date = new Date(unixtime.get() * 1000L);
+ result.set(formatter.format(date));
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFIf.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFIf.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFIf.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFIf.java Tue Apr 14 22:54:39 2009
@@ -28,7 +28,18 @@
import org.apache.hadoop.hive.ql.exec.AmbiguousMethodException;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.hive.ql.exec.UDFMethodResolver;
-import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
+import org.apache.hadoop.io.BooleanWritable;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.NullWritable;
+import org.apache.hadoop.io.Text;
/**
* UDF Class for SQL construct "IF".
@@ -64,8 +75,16 @@
*/
Class<? extends UDF> udfClass;
- static Class[] classPriority = {String.class, Double.class, Long.class,
- Integer.class, Short.class, Byte.class, Boolean.class, Void.class};
+ static TypeInfo[] classPriority = {
+ TypeInfoFactory.stringTypeInfo,
+ TypeInfoFactory.doubleTypeInfo,
+ TypeInfoFactory.floatTypeInfo,
+ TypeInfoFactory.longTypeInfo,
+ TypeInfoFactory.intTypeInfo,
+ TypeInfoFactory.shortTypeInfo,
+ TypeInfoFactory.byteTypeInfo,
+ TypeInfoFactory.booleanTypeInfo,
+ TypeInfoFactory.voidTypeInfo};
/**
* Constuctor.
@@ -78,19 +97,19 @@
* @see org.apache.hadoop.hive.ql.exec.UDFMethodResolver#getEvalMethod(java.util.List)
*/
@Override
- public Method getEvalMethod(List<Class<?>> argClasses)
+ public Method getEvalMethod(List<TypeInfo> argTypeInfos)
throws AmbiguousMethodException {
- if (argClasses.size() != 3) {
+ if (argTypeInfos.size() != 3) {
return null;
}
- List<Class<?>> pClasses = new ArrayList<Class<?>>(3);
- pClasses.add(Boolean.class);
+ List<TypeInfo> pClasses = new ArrayList<TypeInfo>(3);
+ pClasses.add(TypeInfoFactory.booleanTypeInfo);
for(int i=0; i<classPriority.length; i++) {
- if (ObjectInspectorUtils.generalizePrimitive(argClasses.get(1)) == classPriority[i] ||
- ObjectInspectorUtils.generalizePrimitive(argClasses.get(2)) == classPriority[i]) {
+ if (argTypeInfos.get(1).equals(classPriority[i]) ||
+ argTypeInfos.get(2).equals(classPriority[i])) {
pClasses.add(classPriority[i]);
pClasses.add(classPriority[i]);
break;
@@ -100,26 +119,25 @@
return null;
}
- System.err.println("Matched UDFIF: " + pClasses);
Method udfMethod = null;
for(Method m: Arrays.asList(udfClass.getMethods())) {
if (m.getName().equals("evaluate")) {
- Class<?>[] argumentTypeInfos = m.getParameterTypes();
+ List<TypeInfo> acceptedTypeInfos = TypeInfoUtils.getParameterTypeInfos(m);
- boolean match = (argumentTypeInfos.length == pClasses.size());
+ boolean match = (acceptedTypeInfos.size() == pClasses.size());
for(int i=0; i<pClasses.size() && match; i++) {
- Class<?> accepted = ObjectInspectorUtils.generalizePrimitive(argumentTypeInfos[i]);
- if (accepted != pClasses.get(i)) {
+ TypeInfo accepted = acceptedTypeInfos.get(i);
+ if (!accepted.equals(pClasses.get(i))) {
match = false;
}
}
if (match) {
if (udfMethod != null) {
- throw new AmbiguousMethodException(udfClass, argClasses);
+ throw new AmbiguousMethodException(udfClass, argTypeInfos);
}
else {
udfMethod = m;
@@ -134,8 +152,8 @@
/**
* Method for SQL construct "IF(test,valueTrue,valueFalse)"
*/
- public String evaluate(Boolean test, String valueTrue, String valueFalse) {
- if (Boolean.TRUE.equals(test)) {
+ public Text evaluate(BooleanWritable test, Text valueTrue, Text valueFalse) {
+ if (test != null && test.get()) {
return valueTrue;
} else {
return valueFalse;
@@ -145,8 +163,8 @@
/**
* Method for SQL construct "IF(test,valueTrue,valueFalse)"
*/
- public Double evaluate(Boolean test, Double valueTrue, Double valueFalse) {
- if (Boolean.TRUE.equals(test)) {
+ public DoubleWritable evaluate(BooleanWritable test, DoubleWritable valueTrue, DoubleWritable valueFalse) {
+ if (test != null && test.get()) {
return valueTrue;
} else {
return valueFalse;
@@ -156,8 +174,19 @@
/**
* Method for SQL construct "IF(test,valueTrue,valueFalse)"
*/
- public Byte evaluate(Boolean test, Byte valueTrue, Byte valueFalse) {
- if (Boolean.TRUE.equals(test)) {
+ public FloatWritable evaluate(BooleanWritable test, FloatWritable valueTrue, FloatWritable valueFalse) {
+ if (test != null && test.get()) {
+ return valueTrue;
+ } else {
+ return valueFalse;
+ }
+ }
+
+ /**
+ * Method for SQL construct "IF(test,valueTrue,valueFalse)"
+ */
+ public ByteWritable evaluate(BooleanWritable test, ByteWritable valueTrue, ByteWritable valueFalse) {
+ if (test != null && test.get()) {
return valueTrue;
} else {
return valueFalse;
@@ -167,8 +196,8 @@
/**
* Method for SQL construct "IF(test,valueTrue,valueFalse)"
*/
- public Short evaluate(Boolean test, Short valueTrue, Short valueFalse) {
- if (Boolean.TRUE.equals(test)) {
+ public ShortWritable evaluate(BooleanWritable test, ShortWritable valueTrue, ShortWritable valueFalse) {
+ if (test != null && test.get()) {
return valueTrue;
} else {
return valueFalse;
@@ -178,8 +207,8 @@
/**
* Method for SQL construct "IF(test,valueTrue,valueFalse)"
*/
- public Integer evaluate(Boolean test, Integer valueTrue, Integer valueFalse) {
- if (Boolean.TRUE.equals(test)) {
+ public IntWritable evaluate(BooleanWritable test, IntWritable valueTrue, IntWritable valueFalse) {
+ if (test != null && test.get()) {
return valueTrue;
} else {
return valueFalse;
@@ -189,8 +218,8 @@
/**
* Method for SQL construct "IF(test,valueTrue,valueFalse)"
*/
- public Long evaluate(Boolean test, Long valueTrue, Long valueFalse) {
- if (Boolean.TRUE.equals(test)) {
+ public LongWritable evaluate(BooleanWritable test, LongWritable valueTrue, LongWritable valueFalse) {
+ if (test != null && test.get()) {
return valueTrue;
} else {
return valueFalse;
@@ -200,8 +229,8 @@
/**
* Method for SQL construct "IF(test,valueTrue,valueFalse)"
*/
- public Boolean evaluate(Boolean test, Boolean valueTrue, Boolean valueFalse) {
- if (Boolean.TRUE.equals(test)) {
+ public BooleanWritable evaluate(BooleanWritable test, BooleanWritable valueTrue, BooleanWritable valueFalse) {
+ if (test != null && test.get()) {
return valueTrue;
} else {
return valueFalse;
@@ -211,8 +240,8 @@
/**
* Method for SQL construct "IF(test,valueTrue,valueFalse)"
*/
- public Void evaluate(Boolean test, Void valueTrue, Void valueFalse) {
- if (Boolean.TRUE.equals(test)) {
+ public NullWritable evaluate(BooleanWritable test, NullWritable valueTrue, NullWritable valueFalse) {
+ if (test != null && test.get()) {
return valueTrue;
} else {
return valueFalse;
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java Tue Apr 14 22:54:39 2009
@@ -31,6 +31,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.Text;
public class UDFJson extends UDF {
@@ -38,6 +39,7 @@
private Pattern pattern_key = Pattern.compile("^([a-zA-Z0-9_\\-]+).*");
private Pattern pattern_index = Pattern.compile("\\[([0-9]+|\\*)\\]");
+ Text result = new Text();
public UDFJson() {
}
@@ -61,15 +63,18 @@
* [,] : Union operator
* [start:end:step] : array slice operator
*
- * @param jsonString the json string.
- * @param pathString the json path expression.
+ * @param jsonText the json string.
+ * @param pathText the json path expression.
* @return json string or null when error happens.
*/
- public String evaluate(String jsonString, String pathString) {
- if (jsonString == null || pathString == null) {
+ public Text evaluate(Text jsonText, Text pathText) {
+ if (jsonText == null || pathText == null) {
return null;
}
+ String jsonString = jsonText.toString();
+ String pathString = pathText.toString();
+
try {
String[] pathExpr = pathString.split("\\.", -1);
if (!pathExpr[0].equalsIgnoreCase("$")) {
@@ -79,7 +84,8 @@
for (int i = 1; i < pathExpr.length; i++) {
extractObject = extract(extractObject, pathExpr[i]);
}
- return extractObject.toString();
+ result.set(extractObject.toString());
+ return result;
} catch (Exception e) {
return null;
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLTrim.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLTrim.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLTrim.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLTrim.java Tue Apr 14 22:54:39 2009
@@ -19,6 +19,7 @@
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.Text;
import org.apache.commons.lang.StringUtils;
import java.util.regex.Pattern;
@@ -26,14 +27,16 @@
public class UDFLTrim extends UDF {
+ Text result = new Text();
public UDFLTrim() {
}
- public String evaluate(String s) {
+ public Text evaluate(Text s) {
if (s == null) {
return null;
}
- return StringUtils.stripStart(s, " ");
+ result.set(StringUtils.stripStart(s.toString(), " "));
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLike.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLike.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLike.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLike.java Tue Apr 14 22:54:39 2009
@@ -21,15 +21,19 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.BooleanWritable;
+import org.apache.hadoop.io.Text;
+
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class UDFLike extends UDF {
private static Log LOG = LogFactory.getLog(UDFLike.class.getName());
- private String lastLikePattern = null;
+ private Text lastLikePattern = new Text();
private Pattern p = null;
+ private BooleanWritable result = new BooleanWritable();
public UDFLike() {
}
@@ -59,16 +63,17 @@
return sb.toString();
}
- public Boolean evaluate(String s, String likePattern) {
+ public BooleanWritable evaluate(Text s, Text likePattern) {
if (s == null || likePattern == null) {
return null;
}
if (!likePattern.equals(lastLikePattern)) {
- lastLikePattern = likePattern;
- p = Pattern.compile(likePatternToRegExp(likePattern));
+ lastLikePattern.set(likePattern);
+ p = Pattern.compile(likePatternToRegExp(likePattern.toString()));
}
- Matcher m = p.matcher(s);
- return Boolean.valueOf(m.matches());
+ Matcher m = p.matcher(s.toString());
+ result.set(m.matches());
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLn.java Tue Apr 14 22:54:39 2009
@@ -21,23 +21,27 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
public class UDFLn extends UDF {
private static Log LOG = LogFactory.getLog(UDFLn.class.getName());
+ DoubleWritable result = new DoubleWritable();
+
public UDFLn() {
}
/**
* Returns the natural logarithm of "a".
*/
- public Double evaluate(Double a) {
- if (a == null || a <= 0.0) {
+ public DoubleWritable evaluate(DoubleWritable a) {
+ if (a == null || a.get() <= 0.0) {
return null;
} else {
- return Double.valueOf(Math.log(a));
+ result.set(Math.log(a.get()));
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog.java Tue Apr 14 22:54:39 2009
@@ -21,34 +21,38 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
public class UDFLog extends UDF {
private static Log LOG = LogFactory.getLog(UDFLog.class.getName());
+ DoubleWritable result = new DoubleWritable();
public UDFLog() {
}
/**
* Returns the natural logarithm of "a".
*/
- public Double evaluate(Double a) {
- if (a == null || a <= 0.0) {
+ public DoubleWritable evaluate(DoubleWritable a) {
+ if (a == null || a.get() <= 0.0) {
return null;
} else {
- return Double.valueOf(Math.log(a));
+ result.set(Math.log(a.get()));
+ return result;
}
}
/**
* Returns the logarithm of "a" with base "base".
*/
- public Double evaluate(Double base, Double a) {
- if (a == null || a <= 0.0 || base == null || base <= 1.0) {
+ public DoubleWritable evaluate(DoubleWritable base, DoubleWritable a) {
+ if (a == null || a.get() <= 0.0 || base == null || base.get() <= 1.0) {
return null;
} else {
- return Double.valueOf(Math.log(a)/Math.log(base));
+ result.set(Math.log(a.get())/Math.log(base.get()));
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog10.java Tue Apr 14 22:54:39 2009
@@ -21,6 +21,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
public class UDFLog10 extends UDF {
@@ -28,17 +29,21 @@
private static Log LOG = LogFactory.getLog(UDFLog10.class.getName());
private static double log10 = Math.log(10.0);
+
+ DoubleWritable result = new DoubleWritable();
+
public UDFLog10() {
}
/**
* Returns the logarithm of "a" with base 10.
*/
- public Double evaluate(Double a) {
- if (a == null || a <= 0.0) {
+ public DoubleWritable evaluate(DoubleWritable a) {
+ if (a == null || a.get() <= 0.0) {
return null;
} else {
- return Double.valueOf(Math.log(a)/log10);
+ result.set(Math.log(a.get())/log10);
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLog2.java Tue Apr 14 22:54:39 2009
@@ -21,6 +21,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
public class UDFLog2 extends UDF {
@@ -28,17 +29,21 @@
private static Log LOG = LogFactory.getLog(UDFLog2.class.getName());
private static double log2 = Math.log(2.0);
+
+ DoubleWritable result = new DoubleWritable();
+
public UDFLog2() {
}
/**
* Returns the logarithm of "a" with base 2.
*/
- public Double evaluate(Double a) {
- if (a == null || a <= 0.0) {
+ public DoubleWritable evaluate(DoubleWritable a) {
+ if (a == null || a.get() <= 0.0) {
return null;
} else {
- return Double.valueOf(Math.log(a)/log2);
+ result.set(Math.log(a.get())/log2);
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLower.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLower.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLower.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFLower.java Tue Apr 14 22:54:39 2009
@@ -19,19 +19,23 @@
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.Text;
+
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class UDFLower extends UDF {
+ Text t = new Text();
public UDFLower() {
}
- public String evaluate(String s) {
+ public Text evaluate(Text s) {
if (s == null) {
return null;
}
- return s.toLowerCase();
+ t.set(s.toString().toUpperCase());
+ return t;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFMonth.java Tue Apr 14 22:54:39 2009
@@ -26,6 +26,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.Text;
public class UDFMonth extends UDF {
@@ -35,6 +37,7 @@
private SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
private Calendar calendar = Calendar.getInstance();
+ IntWritable result = new IntWritable();
public UDFMonth() {
}
@@ -44,12 +47,13 @@
* @param dateString the dateString in the format of "yyyy-MM-dd HH:mm:ss" or "yyyy-MM-dd".
* @return an int from 1 to 12. null if the dateString is not a valid date string.
*/
- public Integer evaluate(String dateString) {
+ public IntWritable evaluate(Text dateString) {
try {
- Date date = formatter.parse(dateString);
+ Date date = formatter.parse(dateString.toString());
calendar.setTime(date);
- return 1 + calendar.get(Calendar.MONTH);
+ result.set(1 + calendar.get(Calendar.MONTH));
+ return result;
} catch (ParseException e) {
return null;
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPAnd.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPAnd.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPAnd.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPAnd.java Tue Apr 14 22:54:39 2009
@@ -21,25 +21,28 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.BooleanWritable;
public class UDFOPAnd extends UDF {
private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFOPAnd");
+ BooleanWritable result = new BooleanWritable();
public UDFOPAnd() {
}
// Three-value Boolean: NULL stands for unknown
- public Boolean evaluate(Boolean a, Boolean b) {
- Boolean r = null;
- if (Boolean.TRUE.equals(a) && Boolean.TRUE.equals(b)) {
- r = Boolean.TRUE;
+ public BooleanWritable evaluate(BooleanWritable a, BooleanWritable b) {
+
+ if ((a != null && a.get() == false) || (b != null && b.get() == false)) {
+ result.set(false);
+ return result;
}
- if (Boolean.FALSE.equals(a) || Boolean.FALSE.equals(b)) {
- r = Boolean.FALSE;
+ if ((a != null && a.get() == true) && (b != null && b.get() == true)) {
+ result.set(true);
+ return result;
}
- // LOG.info("evaluate(" + a + "," + b + ")=" + r);
- return r;
+ return null;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitAnd.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitAnd.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitAnd.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitAnd.java Tue Apr 14 22:54:39 2009
@@ -21,55 +21,49 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
-public class UDFOPBitAnd extends UDF {
+public class UDFOPBitAnd extends UDFBaseBitOP {
private static Log LOG = LogFactory.getLog(UDFOPBitAnd.class.getName());
public UDFOPBitAnd() {
}
- public Byte evaluate(Byte a, Byte b) {
- if ((a == null) || (b == null))
+ public ByteWritable evaluate(ByteWritable a, ByteWritable b) {
+ if (a == null || b == null) {
return null;
-
- return Byte.valueOf((byte)(a.byteValue() & b.byteValue()));
- }
-
- public Integer evaluate(Integer a, Integer b) {
- if ((a == null) || (b == null))
- return null;
-
- return Integer.valueOf(a.intValue() & b.intValue());
+ }
+ byteWritable.set((byte)(a.get() & b.get()));
+ return byteWritable;
}
- public Long evaluate(Long a, Long b) {
- if ((a == null) || (b == null))
+ public ShortWritable evaluate(ShortWritable a, ShortWritable b) {
+ if (a == null || b == null) {
return null;
-
- return Long.valueOf(a.longValue() & b.longValue());
+ }
+ shortWritable.set((short)(a.get() & b.get()));
+ return shortWritable;
}
- public Long evaluate(String a, String b) {
- if ((a == null) || (b == null))
+ public IntWritable evaluate(IntWritable a, IntWritable b) {
+ if (a == null || b == null) {
return null;
-
- return evaluate(Long.valueOf(a), Long.valueOf(b));
+ }
+ intWritable.set(a.get() & b.get());
+ return intWritable;
}
-
- public Long evaluate(Long a, String b) {
- if ((a == null) || (b == null))
- return null;
- return evaluate(a, Long.valueOf(b));
- }
-
- public Long evaluate(String a, Long b) {
- if ((a == null) || (b == null))
+ public LongWritable evaluate(LongWritable a, LongWritable b) {
+ if (a == null || b == null) {
return null;
-
- return evaluate(Long.valueOf(a), b);
+ }
+ longWritable.set(a.get() & b.get());
+ return longWritable;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitNot.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitNot.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitNot.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitNot.java Tue Apr 14 22:54:39 2009
@@ -21,45 +21,50 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
-public class UDFOPBitNot extends UDF {
+public class UDFOPBitNot extends UDFBaseBitOP {
private static Log LOG = LogFactory.getLog(UDFOPBitNot.class.getName());
public UDFOPBitNot() {
}
- public Byte evaluate(Byte a) {
- if (a == null)
+ public ByteWritable evaluate(ByteWritable a) {
+ if (a == null) {
return null;
-
- Byte r = Byte.valueOf((byte)~a.byteValue());
- return r;
+ }
+ byteWritable.set((byte)(~a.get()));
+ return byteWritable;
}
- public Integer evaluate(Integer a) {
- if (a == null)
+ public ShortWritable evaluate(ShortWritable a) {
+ if (a == null) {
return null;
-
- Integer r = Integer.valueOf(~a.intValue());
- return r;
+ }
+ shortWritable.set((short)(~a.get()));
+ return shortWritable;
}
-
- public Long evaluate(Long a) {
- if (a == null)
+
+ public IntWritable evaluate(IntWritable a) {
+ if (a == null) {
return null;
-
- Long r = Long.valueOf(~a.longValue());
- return r;
+ }
+ intWritable.set(~a.get());
+ return intWritable;
}
- public Long evaluate(String a) {
- if (a == null)
+ public LongWritable evaluate(LongWritable a) {
+ if (a == null) {
return null;
-
- return evaluate(Long.valueOf(a));
+ }
+ longWritable.set(~a.get());
+ return longWritable;
}
-
+
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitOr.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitOr.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitOr.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitOr.java Tue Apr 14 22:54:39 2009
@@ -20,56 +20,50 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
-public class UDFOPBitOr extends UDF {
+public class UDFOPBitOr extends UDFBaseBitOP {
private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFOPBitOr");
public UDFOPBitOr() {
}
- public Byte evaluate(Byte a, Byte b) {
- if ((a == null) || (b == null))
+ public ByteWritable evaluate(ByteWritable a, ByteWritable b) {
+ if (a == null || b == null) {
return null;
-
- return Byte.valueOf((byte)(a.byteValue() | b.byteValue()));
+ }
+ byteWritable.set((byte)(a.get() | b.get()));
+ return byteWritable;
}
- public Integer evaluate(Integer a, Integer b) {
- if ((a == null) || (b == null))
+ public ShortWritable evaluate(ShortWritable a, ShortWritable b) {
+ if (a == null || b == null) {
return null;
-
- return Integer.valueOf(a.intValue() | b.intValue());
- }
-
- public Long evaluate(Long a, Long b) {
- if ((a == null) || (b == null))
- return null;
-
- return Long.valueOf(a.longValue() | b.longValue());
+ }
+ shortWritable.set((short)(a.get() | b.get()));
+ return shortWritable;
}
- public Long evaluate(String a, String b) {
- if ((a == null) || (b == null))
+ public IntWritable evaluate(IntWritable a, IntWritable b) {
+ if (a == null || b == null) {
return null;
-
- return evaluate(Long.valueOf(a), Long.valueOf(b));
+ }
+ intWritable.set(a.get() | b.get());
+ return intWritable;
}
-
- public Long evaluate(Long a, String b) {
- if ((a == null) || (b == null))
- return null;
- return evaluate(a, Long.valueOf(b));
- }
-
- public Long evaluate(String a, Long b) {
- if ((a == null) || (b == null))
+ public LongWritable evaluate(LongWritable a, LongWritable b) {
+ if (a == null || b == null) {
return null;
-
- return evaluate(Long.valueOf(a), b);
+ }
+ longWritable.set(a.get() | b.get());
+ return longWritable;
}
+
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitXor.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitXor.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitXor.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPBitXor.java Tue Apr 14 22:54:39 2009
@@ -21,55 +21,49 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
-public class UDFOPBitXor extends UDF {
+public class UDFOPBitXor extends UDFBaseBitOP {
private static Log LOG = LogFactory.getLog(UDFOPBitXor.class.getName());
public UDFOPBitXor() {
}
- public Byte evaluate(Byte a, Byte b) {
- if ((a == null) || (b == null))
+ public ByteWritable evaluate(ByteWritable a, ByteWritable b) {
+ if (a == null || b == null) {
return null;
-
- return Byte.valueOf((byte)(a.byteValue() ^ b.byteValue()));
- }
-
- public Integer evaluate(Integer a, Integer b) {
- if ((a == null) || (b == null))
- return null;
-
- return Integer.valueOf(a.intValue() ^ b.intValue());
+ }
+ byteWritable.set((byte)(a.get() ^ b.get()));
+ return byteWritable;
}
- public Long evaluate(Long a, Long b) {
- if ((a == null) || (b == null))
+ public ShortWritable evaluate(ShortWritable a, ShortWritable b) {
+ if (a == null || b == null) {
return null;
-
- return Long.valueOf(a.longValue() ^ b.longValue());
+ }
+ shortWritable.set((short)(a.get() ^ b.get()));
+ return shortWritable;
}
- public Long evaluate(String a, String b) {
- if ((a == null) || (b == null))
+ public IntWritable evaluate(IntWritable a, IntWritable b) {
+ if (a == null || b == null) {
return null;
-
- return evaluate(Long.valueOf(a), Long.valueOf(b));
+ }
+ intWritable.set(a.get() ^ b.get());
+ return intWritable;
}
-
- public Long evaluate(Long a, String b) {
- if ((a == null) || (b == null))
- return null;
- return evaluate(a, Long.valueOf(b));
- }
-
- public Long evaluate(String a, Long b) {
- if ((a == null) || (b == null))
+ public LongWritable evaluate(LongWritable a, LongWritable b) {
+ if (a == null || b == null) {
return null;
-
- return evaluate(Long.valueOf(a), b);
+ }
+ longWritable.set(a.get() ^ b.get());
+ return longWritable;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java Tue Apr 14 22:54:39 2009
@@ -21,6 +21,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
public class UDFOPDivide extends UDFBaseNumericOp {
@@ -30,43 +36,64 @@
public UDFOPDivide() {
}
- public Byte evaluate(Byte a, Byte b) {
+ @Override
+ public ByteWritable evaluate(ByteWritable a, ByteWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Byte.valueOf((byte)(a/b));
+ byteWritable.set((byte)(a.get()/b.get()));
+ return byteWritable;
}
- public Integer evaluate(Integer a, Integer b) {
+ @Override
+ public ShortWritable evaluate(ShortWritable a, ShortWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Integer.valueOf((int)(a/b));
+ shortWritable.set((short)(a.get()/b.get()));
+ return shortWritable;
}
- public Long evaluate(Long a, Long b) {
+ @Override
+ public IntWritable evaluate(IntWritable a, IntWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Long.valueOf((long)(a/b));
+ intWritable.set((int)(a.get()/b.get()));
+ return intWritable;
}
- public Float evaluate(Float a, Float b) {
+ @Override
+ public LongWritable evaluate(LongWritable a, LongWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Float.valueOf((float)(a/b));
+ longWritable.set(a.get()/b.get());
+ return longWritable;
+ }
+
+ @Override
+ public FloatWritable evaluate(FloatWritable a, FloatWritable b) {
+ // LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
+ if ((a == null) || (b == null))
+ return null;
+
+ floatWritable.set(a.get()/b.get());
+ return floatWritable;
}
- public Double evaluate(Double a, Double b) {
+ @Override
+ public DoubleWritable evaluate(DoubleWritable a, DoubleWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Double.valueOf((double)(a/b));
+ doubleWritable.set(a.get()/b.get());
+ return doubleWritable;
}
+
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqual.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqual.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqual.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqual.java Tue Apr 14 22:54:39 2009
@@ -18,10 +18,16 @@
package org.apache.hadoop.hive.ql.udf;
-import java.sql.Date;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.BooleanWritable;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.Text;
/**
* The reason that we list evaluate methods with all numeric types is for
@@ -32,82 +38,83 @@
private static Log LOG = LogFactory.getLog(UDFOPEqual.class.getName());
+ BooleanWritable resultCache;
public UDFOPEqual() {
+ resultCache = new BooleanWritable();
}
- public Boolean evaluate(String a, String b) {
-
- Boolean r = null;
+ public BooleanWritable evaluate(Text a, Text b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.equals(b));
+ r.set(a.equals(b));
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Byte a, Byte b) {
- Boolean r = null;
+ public BooleanWritable evaluate(ByteWritable a, ByteWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.byteValue() == b.byteValue());
+ r.set(a.get() == b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Integer a, Integer b) {
- Boolean r = null;
+ public BooleanWritable evaluate(ShortWritable a, ShortWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.intValue() == b.intValue());
+ r.set(a.get() == b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
-
- public Boolean evaluate(Long a, Long b) {
- Boolean r = null;
+
+ public BooleanWritable evaluate(IntWritable a, IntWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.longValue() == b.longValue());
+ r.set(a.get() == b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Float a, Float b) {
- Boolean r = null;
+ public BooleanWritable evaluate(LongWritable a, LongWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.floatValue() == b.floatValue());
+ r.set(a.get() == b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
- }
-
- public Boolean evaluate(Double a, Double b) {
- Boolean r = null;
+ }
+
+ public BooleanWritable evaluate(FloatWritable a, FloatWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.doubleValue() == b.doubleValue());
+ r.set(a.get() == b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Date a, Date b) {
- Boolean r = null;
+ public BooleanWritable evaluate(DoubleWritable a, DoubleWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.equals(b));
+ r.set(a.get() == b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrGreaterThan.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrGreaterThan.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrGreaterThan.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrGreaterThan.java Tue Apr 14 22:54:39 2009
@@ -18,95 +18,101 @@
package org.apache.hadoop.hive.ql.udf;
-import java.sql.Date;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.BooleanWritable;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.Text;
public class UDFOPEqualOrGreaterThan extends UDFBaseCompare {
private static Log LOG = LogFactory.getLog(UDFOPEqualOrGreaterThan.class.getName());
+ BooleanWritable resultCache;
public UDFOPEqualOrGreaterThan() {
+ resultCache = new BooleanWritable();
}
- public Boolean evaluate(String a, String b) {
-
- Boolean r = null;
+ public BooleanWritable evaluate(Text a, Text b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.compareTo(b) >= 0);
+ r.set(a.compareTo(b) >= 0);
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
-
- public Boolean evaluate(Byte a, Byte b) {
- Boolean r = null;
+ public BooleanWritable evaluate(ByteWritable a, ByteWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.byteValue() >= b.byteValue());
+ r.set(a.get() >= b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Integer a, Integer b) {
- Boolean r = null;
+ public BooleanWritable evaluate(ShortWritable a, ShortWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.intValue() >= b.intValue());
+ r.set(a.get() >= b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
-
- public Boolean evaluate(Long a, Long b) {
- Boolean r = null;
+
+ public BooleanWritable evaluate(IntWritable a, IntWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.longValue() >= b.longValue());
+ r.set(a.get() >= b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Float a, Float b) {
- Boolean r = null;
+ public BooleanWritable evaluate(LongWritable a, LongWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.floatValue() >= b.floatValue());
+ r.set(a.get() >= b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
- }
-
- public Boolean evaluate(Double a, Double b) {
- Boolean r = null;
+ }
+
+ public BooleanWritable evaluate(FloatWritable a, FloatWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.doubleValue() >= b.doubleValue());
+ r.set(a.get() >= b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Date a, Date b) {
- Boolean r = null;
+ public BooleanWritable evaluate(DoubleWritable a, DoubleWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.compareTo(b) >= 0);
+ r.set(a.get() >= b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
- }
+ }
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrLessThan.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrLessThan.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrLessThan.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPEqualOrLessThan.java Tue Apr 14 22:54:39 2009
@@ -18,96 +18,101 @@
package org.apache.hadoop.hive.ql.udf;
-import java.sql.Date;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.BooleanWritable;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.Text;
public class UDFOPEqualOrLessThan extends UDFBaseCompare {
private static Log LOG = LogFactory.getLog(UDFOPEqualOrLessThan.class.getName());
+ BooleanWritable resultCache;
public UDFOPEqualOrLessThan() {
+ resultCache = new BooleanWritable();
}
-
- public Boolean evaluate(String a, String b) {
-
- Boolean r = null;
+ public BooleanWritable evaluate(Text a, Text b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.compareTo(b) <= 0);
+ r.set(a.compareTo(b) <= 0);
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
-
- public Boolean evaluate(Byte a, Byte b) {
- Boolean r = null;
+ public BooleanWritable evaluate(ByteWritable a, ByteWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.byteValue() <= b.byteValue());
+ r.set(a.get() <= b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Integer a, Integer b) {
- Boolean r = null;
+ public BooleanWritable evaluate(ShortWritable a, ShortWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.intValue() <= b.intValue());
+ r.set(a.get() <= b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
-
- public Boolean evaluate(Long a, Long b) {
- Boolean r = null;
+
+ public BooleanWritable evaluate(IntWritable a, IntWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.longValue() <= b.longValue());
+ r.set(a.get() <= b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Float a, Float b) {
- Boolean r = null;
+ public BooleanWritable evaluate(LongWritable a, LongWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.floatValue() <= b.floatValue());
+ r.set(a.get() <= b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
- }
-
- public Boolean evaluate(Double a, Double b) {
- Boolean r = null;
+ }
+
+ public BooleanWritable evaluate(FloatWritable a, FloatWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.doubleValue() <= b.doubleValue());
+ r.set(a.get() <= b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Date a, Date b) {
- Boolean r = null;
+ public BooleanWritable evaluate(DoubleWritable a, DoubleWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.compareTo(b) <= 0);
+ r.set(a.get() <= b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
- }
+ }
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPGreaterThan.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPGreaterThan.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPGreaterThan.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPGreaterThan.java Tue Apr 14 22:54:39 2009
@@ -22,91 +22,99 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.BooleanWritable;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.Text;
public class UDFOPGreaterThan extends UDFBaseCompare {
private static Log LOG = LogFactory.getLog(UDFOPGreaterThan.class.getName());
+ BooleanWritable resultCache;
public UDFOPGreaterThan() {
+ resultCache = new BooleanWritable();
}
- public Boolean evaluate(String a, String b) {
-
- Boolean r = null;
+ public BooleanWritable evaluate(Text a, Text b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.compareTo(b) > 0);
+ r.set(a.compareTo(b) > 0);
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
-
- public Boolean evaluate(Byte a, Byte b) {
- Boolean r = null;
+ public BooleanWritable evaluate(ByteWritable a, ByteWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.byteValue() > b.byteValue());
+ r.set(a.get() > b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Integer a, Integer b) {
- Boolean r = null;
+ public BooleanWritable evaluate(ShortWritable a, ShortWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.intValue() > b.intValue());
+ r.set(a.get() > b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
-
- public Boolean evaluate(Long a, Long b) {
- Boolean r = null;
+
+ public BooleanWritable evaluate(IntWritable a, IntWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.longValue() > b.longValue());
+ r.set(a.get() > b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Float a, Float b) {
- Boolean r = null;
+ public BooleanWritable evaluate(LongWritable a, LongWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.floatValue() > b.floatValue());
+ r.set(a.get() > b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
- }
-
- public Boolean evaluate(Double a, Double b) {
- Boolean r = null;
+ }
+
+ public BooleanWritable evaluate(FloatWritable a, FloatWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.doubleValue() > b.doubleValue());
+ r.set(a.get() > b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Date a, Date b) {
- Boolean r = null;
+ public BooleanWritable evaluate(DoubleWritable a, DoubleWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.compareTo(b) > 0);
+ r.set(a.get() > b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
- }
+ }
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPLessThan.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPLessThan.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPLessThan.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPLessThan.java Tue Apr 14 22:54:39 2009
@@ -22,92 +22,99 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.BooleanWritable;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
+import org.apache.hadoop.io.Text;
public class UDFOPLessThan extends UDFBaseCompare {
private static Log LOG = LogFactory.getLog(UDFOPLessThan.class.getName());
+ BooleanWritable resultCache;
public UDFOPLessThan() {
+ resultCache = new BooleanWritable();
}
- public Boolean evaluate(String a, String b) {
-
- Boolean r = null;
+ public BooleanWritable evaluate(Text a, Text b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.compareTo(b) < 0);
+ r.set(a.compareTo(b) < 0);
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
-
- public Boolean evaluate(Byte a, Byte b) {
- Boolean r = null;
+ public BooleanWritable evaluate(ByteWritable a, ByteWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.byteValue() < b.byteValue());
+ r.set(a.get() < b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Integer a, Integer b) {
- Boolean r = null;
+ public BooleanWritable evaluate(ShortWritable a, ShortWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.intValue() < b.intValue());
+ r.set(a.get() < b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
-
- public Boolean evaluate(Long a, Long b) {
- Boolean r = null;
+
+ public BooleanWritable evaluate(IntWritable a, IntWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.longValue() < b.longValue());
+ r.set(a.get() < b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Float a, Float b) {
- Boolean r = null;
+ public BooleanWritable evaluate(LongWritable a, LongWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.floatValue() < b.floatValue());
+ r.set(a.get() < b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
- }
-
- public Boolean evaluate(Double a, Double b) {
- Boolean r = null;
+ }
+
+ public BooleanWritable evaluate(FloatWritable a, FloatWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.doubleValue() < b.doubleValue());
+ r.set(a.get() < b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
- public Boolean evaluate(Date a, Date b) {
- Boolean r = null;
+ public BooleanWritable evaluate(DoubleWritable a, DoubleWritable b) {
+ BooleanWritable r = this.resultCache;
if ((a == null) || (b == null)) {
r = null;
} else {
- r = Boolean.valueOf(a.compareTo(b) < 0);
+ r.set(a.get() < b.get());
}
// LOG.info("evaluate(" + a + "," + b + ")=" + r);
return r;
}
-
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMinus.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMinus.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMinus.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMinus.java Tue Apr 14 22:54:39 2009
@@ -20,7 +20,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
public class UDFOPMinus extends UDFBaseNumericOp {
@@ -30,44 +35,63 @@
public UDFOPMinus() {
}
- public Byte evaluate(Byte a, Byte b) {
+ @Override
+ public ByteWritable evaluate(ByteWritable a, ByteWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Byte.valueOf((byte)(a-b));
+ byteWritable.set((byte)(a.get() - b.get()));
+ return byteWritable;
}
- public Integer evaluate(Integer a, Integer b) {
+ @Override
+ public ShortWritable evaluate(ShortWritable a, ShortWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Integer.valueOf((int)(a-b));
+ shortWritable.set((short)(a.get() - b.get()));
+ return shortWritable;
}
- public Long evaluate(Long a, Long b) {
+ @Override
+ public IntWritable evaluate(IntWritable a, IntWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Long.valueOf((long)(a-b));
+ intWritable.set((int)(a.get() - b.get()));
+ return intWritable;
}
- public Float evaluate(Float a, Float b) {
+ @Override
+ public LongWritable evaluate(LongWritable a, LongWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Float.valueOf((float)(a-b));
+ longWritable.set(a.get() - b.get());
+ return longWritable;
}
-
- public Double evaluate(Double a, Double b) {
+
+ @Override
+ public FloatWritable evaluate(FloatWritable a, FloatWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Double.valueOf((double)(a-b));
+ floatWritable.set(a.get() - b.get());
+ return floatWritable;
}
+
+ @Override
+ public DoubleWritable evaluate(DoubleWritable a, DoubleWritable b) {
+ // LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
+ if ((a == null) || (b == null))
+ return null;
+ doubleWritable.set(a.get() - b.get());
+ return doubleWritable;
+ }
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMod.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMod.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMod.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMod.java Tue Apr 14 22:54:39 2009
@@ -20,7 +20,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
public class UDFOPMod extends UDFBaseNumericOp {
@@ -30,43 +35,64 @@
public UDFOPMod() {
}
- public Byte evaluate(Byte a, Byte b) {
+
+ @Override
+ public ByteWritable evaluate(ByteWritable a, ByteWritable b) {
+ // LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
+ if ((a == null) || (b == null))
+ return null;
+
+ byteWritable.set((byte)(a.get() % b.get()));
+ return byteWritable;
+ }
+
+ @Override
+ public ShortWritable evaluate(ShortWritable a, ShortWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Byte.valueOf((byte)(a%b));
+ shortWritable.set((short)(a.get() % b.get()));
+ return shortWritable;
}
- public Integer evaluate(Integer a, Integer b) {
+ @Override
+ public IntWritable evaluate(IntWritable a, IntWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Integer.valueOf((int)(a%b));
+ intWritable.set((int)(a.get() % b.get()));
+ return intWritable;
}
- public Long evaluate(Long a, Long b) {
+ @Override
+ public LongWritable evaluate(LongWritable a, LongWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Long.valueOf((long)(a%b));
+ longWritable.set(a.get() % b.get());
+ return longWritable;
}
- public Float evaluate(Float a, Float b) {
+ @Override
+ public FloatWritable evaluate(FloatWritable a, FloatWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Float.valueOf((float)(a%b));
+ floatWritable.set(a.get() % b.get());
+ return floatWritable;
}
- public Double evaluate(Double a, Double b) {
+ @Override
+ public DoubleWritable evaluate(DoubleWritable a, DoubleWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Double.valueOf((double)(a%b));
+ doubleWritable.set(a.get() % b.get());
+ return doubleWritable;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMultiply.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMultiply.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMultiply.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMultiply.java Tue Apr 14 22:54:39 2009
@@ -20,7 +20,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.io.FloatWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
public class UDFOPMultiply extends UDFBaseNumericOp {
@@ -30,43 +35,63 @@
public UDFOPMultiply() {
}
- public Byte evaluate(Byte a, Byte b) {
+ @Override
+ public ByteWritable evaluate(ByteWritable a, ByteWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Byte.valueOf((byte)(a*b));
+ byteWritable.set((byte)(a.get() * b.get()));
+ return byteWritable;
}
- public Integer evaluate(Integer a, Integer b) {
+ @Override
+ public ShortWritable evaluate(ShortWritable a, ShortWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Integer.valueOf((int)(a*b));
+ shortWritable.set((short)(a.get() * b.get()));
+ return shortWritable;
}
- public Long evaluate(Long a, Long b) {
+ @Override
+ public IntWritable evaluate(IntWritable a, IntWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Long.valueOf((long)(a*b));
+ intWritable.set((int)(a.get() * b.get()));
+ return intWritable;
}
- public Float evaluate(Float a, Float b) {
+ @Override
+ public LongWritable evaluate(LongWritable a, LongWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Float.valueOf((float)(a*b));
+ longWritable.set(a.get() * b.get());
+ return longWritable;
+ }
+
+ @Override
+ public FloatWritable evaluate(FloatWritable a, FloatWritable b) {
+ // LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
+ if ((a == null) || (b == null))
+ return null;
+
+ floatWritable.set(a.get() * b.get());
+ return floatWritable;
}
- public Double evaluate(Double a, Double b) {
+ @Override
+ public DoubleWritable evaluate(DoubleWritable a, DoubleWritable b) {
// LOG.info("Get input " + a.getClass() + ":" + a + " " + b.getClass() + ":" + b);
if ((a == null) || (b == null))
return null;
- return Double.valueOf((double)(a*b));
+ doubleWritable.set(a.get() * b.get());
+ return doubleWritable;
}
}