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 [4/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/...
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNegative.java Tue Apr 14 22:54:39 2009
@@ -21,53 +21,56 @@
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 UDFOPNegative extends UDF {
+public class UDFOPNegative extends UDFBaseNumericUnaryOp {
private static Log LOG = LogFactory.getLog(UDFOPNegative.class.getName());
public UDFOPNegative() {
}
- public Byte evaluate(Byte a) {
- if (a == null)
- return null;
-
- Byte r = Byte.valueOf((byte)-a.byteValue());
- return r;
+ @Override
+ public ByteWritable evaluate(ByteWritable a) {
+ byteWritable.set((byte)-a.get());
+ return byteWritable;
}
- public Integer evaluate(Integer a) {
- if (a == null)
- return null;
-
- Integer r = Integer.valueOf(-a.intValue());
- return r;
+ @Override
+ public ShortWritable evaluate(ShortWritable a) {
+ shortWritable.set((short)-a.get());
+ return shortWritable;
}
- public Long evaluate(Long a) {
- if (a == null)
- return null;
-
- Long r = Long.valueOf(-a.longValue());
- return r;
+ @Override
+ public IntWritable evaluate(IntWritable a) {
+ intWritable.set(-a.get());
+ return intWritable;
}
- public Float evaluate(Float a) {
- if (a == null)
- return null;
-
- Float r = Float.valueOf(-a.floatValue());
- return r;
+ @Override
+ public LongWritable evaluate(LongWritable a) {
+ longWritable.set(-a.get());
+ return longWritable;
}
- public Double evaluate(Double a) {
- if (a == null)
- return null;
+ @Override
+ public FloatWritable evaluate(FloatWritable a) {
+ floatWritable.set(-a.get());
+ return floatWritable;
+ }
- Double r = Double.valueOf(-a.doubleValue());
- return r;
+ @Override
+ public DoubleWritable evaluate(DoubleWritable a) {
+ doubleWritable.set(-a.get());
+ return doubleWritable;
}
+
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNot.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNot.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNot.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNot.java Tue Apr 14 22:54:39 2009
@@ -21,23 +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.io.BooleanWritable;
public class UDFOPNot extends UDF {
private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFOPNot");
+ BooleanWritable result = new BooleanWritable();
public UDFOPNot() {
}
// Three-value Boolean: NULL stands for unknown
- public Boolean evaluate(Boolean a) {
- if (Boolean.TRUE.equals(a)) {
- return Boolean.FALSE;
+ public BooleanWritable evaluate(BooleanWritable a) {
+ if (a == null) {
+ return null;
}
- if (Boolean.FALSE.equals(a)) {
- return Boolean.TRUE;
- }
- return null;
+ result.set(!a.get());
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNotEqual.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNotEqual.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNotEqual.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNotEqual.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 UDFOPNotEqual extends UDFBaseCompare {
private static Log LOG = LogFactory.getLog(UDFOPNotEqual.class.getName());
+ BooleanWritable resultCache;
public UDFOPNotEqual() {
+ 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/UDFOPNotNull.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNotNull.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNotNull.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNotNull.java Tue Apr 14 22:54:39 2009
@@ -21,17 +21,20 @@
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 UDFOPNotNull extends UDF {
private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFOPNotNull");
+ BooleanWritable result = new BooleanWritable();
public UDFOPNotNull() {
}
- public Boolean evaluate(Object a) {
- return Boolean.valueOf(a != null);
+ public BooleanWritable evaluate(Object a) {
+ result.set(a != null);
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNull.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNull.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNull.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPNull.java Tue Apr 14 22:54:39 2009
@@ -21,17 +21,21 @@
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 UDFOPNull extends UDF {
private static Log LOG = LogFactory.getLog("org.apache.hadoop.hive.ql.udf.UDFOPNull");
+
+ BooleanWritable result = new BooleanWritable();
public UDFOPNull() {
}
- public Boolean evaluate(Object a) {
- return Boolean.valueOf(a == null);
+ public BooleanWritable evaluate(Object a) {
+ result.set(a == null);
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPOr.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPOr.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPOr.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPOr.java Tue Apr 14 22:54:39 2009
@@ -21,25 +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.io.BooleanWritable;
public class UDFOPOr extends UDF {
private static Log LOG = LogFactory.getLog(UDFOPOr.class.getName());
+ BooleanWritable result = new BooleanWritable();
public UDFOPOr() {
}
// Three-value Boolean: NULL stands for unknown
- public Boolean evaluate(Boolean a, Boolean b) {
- Boolean r = null;
- if (Boolean.FALSE.equals(a) && Boolean.FALSE.equals(b)) {
- r = Boolean.FALSE;
+ public BooleanWritable evaluate(BooleanWritable a, BooleanWritable b) {
+ if ((a != null && a.get() == true) || (b != null && b.get() == true)) {
+ result.set(true);
+ return result;
}
- if (Boolean.TRUE.equals(a) || Boolean.TRUE.equals(b)) {
- r = Boolean.TRUE;
+ if ((a != null && a.get() == false) && (b != null && b.get() == false)) {
+ result.set(false);
+ 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/UDFOPPlus.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java Tue Apr 14 22:54:39 2009
@@ -7,7 +7,7 @@
* "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
+ * 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,
@@ -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;
/**
@@ -39,44 +44,64 @@
public UDFOPPlus() {
}
- 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/UDFOPPositive.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPositive.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPositive.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPositive.java Tue Apr 14 22:54:39 2009
@@ -21,32 +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.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 UDFOPPositive extends UDF {
+public class UDFOPPositive extends UDFBaseNumericUnaryOp {
private static Log LOG = LogFactory.getLog(UDFOPPositive.class.getName());
public UDFOPPositive() {
}
- public Byte evaluate(Byte a) {
+
+ @Override
+ public ByteWritable evaluate(ByteWritable a) {
+ return a;
+ }
+
+ @Override
+ public ShortWritable evaluate(ShortWritable a) {
return a;
}
- public Integer evaluate(Integer a) {
+ @Override
+ public IntWritable evaluate(IntWritable a) {
return a;
}
- public Long evaluate(Long a) {
+ @Override
+ public LongWritable evaluate(LongWritable a) {
return a;
}
- public Float evaluate(Float a) {
+ @Override
+ public FloatWritable evaluate(FloatWritable a) {
return a;
}
- public Double evaluate(Double a) {
+ @Override
+ public DoubleWritable evaluate(DoubleWritable a) {
return a;
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPower.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPower.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPower.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPower.java Tue Apr 14 22:54:39 2009
@@ -21,23 +21,26 @@
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 UDFPower extends UDF {
private static Log LOG = LogFactory.getLog(UDFPower.class.getName());
+ DoubleWritable result = new DoubleWritable();
public UDFPower() {
}
/**
* Raise a to the power of b.
*/
- public Double evaluate(Double a, Double b) {
+ public DoubleWritable evaluate(DoubleWritable a, DoubleWritable b) {
if (a == null || b == null) {
return null;
} else {
- return Double.valueOf(Math.pow(a, b));
+ result.set(Math.pow(a.get(), b.get()));
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRTrim.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRTrim.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRTrim.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRTrim.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 UDFRTrim extends UDF {
+ Text result = new Text();
public UDFRTrim() {
}
- public String evaluate(String s) {
+ public Text evaluate(Text s) {
if (s == null) {
return null;
}
- return StringUtils.stripEnd(s, " ");
+ result.set(StringUtils.stripEnd(s.toString(), " "));
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRand.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRand.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRand.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRand.java Tue Apr 14 22:54:39 2009
@@ -23,6 +23,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.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.io.LongWritable;
@UDFType(deterministic=false)
public class UDFRand extends UDF {
@@ -31,21 +33,24 @@
private Random random;
+ DoubleWritable result = new DoubleWritable();
public UDFRand() {
}
- public Double evaluate() {
+ public DoubleWritable evaluate() {
if (random == null) {
random = new Random();
}
- return random.nextDouble();
+ result.set(random.nextDouble());
+ return result;
}
- public Double evaluate(long seed) {
+ public DoubleWritable evaluate(LongWritable seed) {
if (random == null) {
- random = new Random(seed);
+ random = new Random(seed.get());
}
- return random.nextDouble();
+ result.set(random.nextDouble());
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRegExp.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRegExp.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRegExp.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRegExp.java Tue Apr 14 22:54:39 2009
@@ -19,27 +19,32 @@
package org.apache.hadoop.hive.ql.udf;
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 UDFRegExp extends UDF {
- private String lastRegex = null;
+ private Text lastRegex = new Text();
private Pattern p = null;
+ BooleanWritable result = new BooleanWritable();
public UDFRegExp() {
}
- public Boolean evaluate(String s, String regex) {
+ public BooleanWritable evaluate(Text s, Text regex) {
if (s == null || regex == null) {
return null;
}
if (!regex.equals(lastRegex)) {
- lastRegex = regex;
- p = Pattern.compile(regex);
+ lastRegex.set(regex);
+ p = Pattern.compile(regex.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/UDFRegExpReplace.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRegExpReplace.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRegExpReplace.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRegExpReplace.java Tue Apr 14 22:54:39 2009
@@ -19,33 +19,47 @@
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 UDFRegExpReplace extends UDF {
- private String lastRegex = null;
+ private Text lastRegex = new Text();
private Pattern p = null;
+
+ private Text lastReplacement = new Text();
+ private String replacementString = null;
+ Text result = new Text();
public UDFRegExpReplace() {
}
- public String evaluate(String s, String regex, String replacement) {
+ public Text evaluate(Text s, Text regex, Text replacement) {
if (s == null || regex == null || replacement == null) {
return null;
}
+ // If the regex is changed, make sure we compile the regex again.
if (!regex.equals(lastRegex)) {
- lastRegex = regex;
- p = Pattern.compile(regex);
+ lastRegex.set(regex);
+ p = Pattern.compile(regex.toString());
+ }
+ Matcher m = p.matcher(s.toString());
+ // If the replacement is changed, make sure we redo toString again.
+ if (!replacement.equals(lastReplacement)) {
+ lastReplacement.set(replacement);
+ replacementString = replacement.toString();
}
- Matcher m = p.matcher(s);
StringBuffer sb = new StringBuffer();
while (m.find()) {
- m.appendReplacement(sb, replacement);
+ m.appendReplacement(sb, replacementString);
}
m.appendTail(sb);
- return sb.toString();
+
+ result.set(sb.toString());
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRound.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRound.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRound.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFRound.java Tue Apr 14 22:54:39 2009
@@ -22,23 +22,33 @@
import java.math.RoundingMode;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.LongWritable;
public class UDFRound extends UDF {
+ DoubleWritable doubleWritable = new DoubleWritable();
+ LongWritable longWritable = new LongWritable();
+
public UDFRound() {
}
- public Long evaluate(Double n) {
- if (n == null)
+ public LongWritable evaluate(DoubleWritable n) {
+ if (n == null) {
return null;
- return evaluate(n, 0).longValue();
+ }
+ longWritable.set(BigDecimal.valueOf(n.get()).setScale(0, RoundingMode.HALF_UP).longValue());
+ return longWritable;
}
- public Double evaluate(Double n, Integer i) {
- if ((n == null) || (i == null))
+ public DoubleWritable evaluate(DoubleWritable n, IntWritable i) {
+ if ((n == null) || (i == null)) {
return null;
- return BigDecimal.valueOf(n).setScale(i, RoundingMode.HALF_UP).doubleValue();
+ }
+ doubleWritable.set(BigDecimal.valueOf(n.get()).setScale(i.get(), RoundingMode.HALF_UP).doubleValue());
+ return doubleWritable;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSize.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSize.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSize.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSize.java Tue Apr 14 22:54:39 2009
@@ -19,27 +19,34 @@
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.IntWritable;
import java.util.Map;
import java.util.List;
public class UDFSize extends UDF {
+ IntWritable result = new IntWritable();
+
public UDFSize() {
}
- public Integer evaluate(Map<?,?> s) {
+ public IntWritable evaluate(Map<?,?> s) {
if (s == null) {
- return -1;
+ result.set(-1);
+ } else {
+ result.set(s.size());
}
- return s.size();
+ return result;
}
- public Integer evaluate(List<?> s) {
+ public IntWritable evaluate(List<?> s) {
if (s == null) {
- return -1;
+ result.set(-1);
+ } else {
+ result.set(s.size());
}
- return s.size();
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSqrt.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSqrt.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSqrt.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSqrt.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;
/**
@@ -30,6 +31,7 @@
private static Log LOG = LogFactory.getLog(UDFSqrt.class.getName());
+ DoubleWritable result = new DoubleWritable();
public UDFSqrt() {
}
@@ -37,13 +39,14 @@
* Return NULL for NULL or negative inputs; otherwise, return
* the square root.
*/
- public Double evaluate(Double i) {
+ public DoubleWritable evaluate(DoubleWritable i) {
if (i == null) {
return null;
- } else if (i < 0) {
+ } else if (i.get() < 0) {
return null;
} else {
- return Double.valueOf(Math.sqrt(i));
+ result.set(Math.sqrt(i.get()));
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSubstr.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSubstr.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSubstr.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSubstr.java Tue Apr 14 22:54:39 2009
@@ -19,38 +19,57 @@
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.io.IntWritable;
+import org.apache.hadoop.io.Text;
public class UDFSubstr extends UDF {
+ Text r;
public UDFSubstr() {
+ r = new Text();
}
-
- public String evaluate(String s, Integer pos, Integer len) {
- int start, end;
-
- if ((s == null) || (pos == null) || (len == null))
+
+ public Text evaluate(Text t, IntWritable pos, IntWritable len) {
+
+ if ((t == null) || (pos == null) || (len == null)) {
return null;
- if ((len <= 0) || (Math.abs(pos) > s.length()))
- return "";
+ }
+
+ r.clear();
+ if ((len.get() <= 0)) {
+ return r;
+ }
+
+ String s = t.toString();
+ if ((Math.abs(pos.get()) > s.length())) {
+ return r;
+ }
+
+ int start, end;
- if (pos > 0)
- start = pos - 1;
- else if (pos < 0)
- start = s.length() + pos;
- else
+ if (pos.get() > 0) {
+ start = pos.get() - 1;
+ } else if (pos.get() < 0) {
+ start = s.length() + pos.get();
+ } else {
start = 0;
-
- if ((s.length() - start) < len)
+ }
+
+ if ((s.length() - start) < len.get()) {
end = s.length();
- else
- end = start + len;
-
- return s.substring(start, end);
+ } else {
+ end = start + len.get();
+ }
+
+ r.set(s.substring(start, end));
+ return r;
}
- public String evaluate(String s, Integer pos) {
- return evaluate(s, pos, Integer.MAX_VALUE);
+ IntWritable maxValue = new IntWritable(Integer.MAX_VALUE);
+
+ public Text evaluate(Text s, IntWritable pos) {
+ return evaluate(s, pos, maxValue);
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToBoolean.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToBoolean.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToBoolean.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToBoolean.java Tue Apr 14 22:54:39 2009
@@ -21,12 +21,24 @@
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.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;
+
public class UDFToBoolean extends UDF {
private static Log LOG = LogFactory.getLog(UDFToBoolean.class.getName());
+ BooleanWritable booleanWritable = new BooleanWritable();
+
public UDFToBoolean() {
}
@@ -34,9 +46,9 @@
* Convert a void to boolean. This is called for CAST(... AS BOOLEAN)
*
* @param i The value of a void type
- * @return Boolean
+ * @return BooleanWritable
*/
- public Boolean evaluate(Void i) {
+ public BooleanWritable evaluate(NullWritable i) {
return null;
}
@@ -44,13 +56,14 @@
* Convert from a byte to boolean. This is called for CAST(... AS BOOLEAN)
*
* @param i The byte value to convert
- * @return Boolean
+ * @return BooleanWritable
*/
- public Boolean evaluate(Byte i) {
+ public BooleanWritable evaluate(ByteWritable i) {
if (i == null) {
return null;
} else {
- return Boolean.valueOf(i.byteValue() != 0);
+ booleanWritable.set(i.get() != 0);
+ return booleanWritable;
}
}
@@ -58,13 +71,14 @@
* Convert from a short to boolean. This is called for CAST(... AS BOOLEAN)
*
* @param i The short value to convert
- * @return Boolean
+ * @return BooleanWritable
*/
- public Boolean evaluate(Short i) {
+ public BooleanWritable evaluate(ShortWritable i) {
if (i == null) {
return null;
} else {
- return Boolean.valueOf(i.shortValue() != 0);
+ booleanWritable.set(i.get() != 0);
+ return booleanWritable;
}
}
@@ -72,13 +86,14 @@
* Convert from a integer to boolean. This is called for CAST(... AS BOOLEAN)
*
* @param i The integer value to convert
- * @return Boolean
+ * @return BooleanWritable
*/
- public Boolean evaluate(Integer i) {
+ public BooleanWritable evaluate(IntWritable i) {
if (i == null) {
return null;
} else {
- return Boolean.valueOf(i.intValue() != 0);
+ booleanWritable.set(i.get() != 0);
+ return booleanWritable;
}
}
@@ -86,13 +101,14 @@
* Convert from a long to boolean. This is called for CAST(... AS BOOLEAN)
*
* @param i The long value to convert
- * @return Boolean
+ * @return BooleanWritable
*/
- public Boolean evaluate(Long i) {
+ public BooleanWritable evaluate(LongWritable i) {
if (i == null) {
return null;
} else {
- return Boolean.valueOf(i.longValue() != 0);
+ booleanWritable.set(i.get() != 0);
+ return booleanWritable;
}
}
@@ -100,13 +116,14 @@
* Convert from a float to boolean. This is called for CAST(... AS BOOLEAN)
*
* @param i The float value to convert
- * @return Boolean
+ * @return BooleanWritable
*/
- public Boolean evaluate(Float i) {
+ public BooleanWritable evaluate(FloatWritable i) {
if (i == null) {
return null;
} else {
- return Boolean.valueOf(i.floatValue() != 0);
+ booleanWritable.set(i.get() != 0);
+ return booleanWritable;
}
}
@@ -114,13 +131,14 @@
* Convert from a double to boolean. This is called for CAST(... AS BOOLEAN)
*
* @param i The double value to convert
- * @return Boolean
+ * @return BooleanWritable
*/
- public Boolean evaluate(Double i) {
+ public BooleanWritable evaluate(DoubleWritable i) {
if (i == null) {
return null;
} else {
- return Boolean.valueOf(i.doubleValue() != 0);
+ booleanWritable.set(i.get() != 0);
+ return booleanWritable;
}
}
@@ -128,13 +146,14 @@
* Convert from a string to boolean. This is called for CAST(... AS BOOLEAN)
*
* @param i The string value to convert
- * @return Boolean
+ * @return BooleanWritable
*/
- public Boolean evaluate(String i) {
+ public BooleanWritable evaluate(Text i) {
if (i == null) {
return null;
} else {
- return Boolean.valueOf(i.length() != 0);
+ booleanWritable.set(i.getLength() != 0);
+ return booleanWritable;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToByte.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToByte.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToByte.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToByte.java Tue Apr 14 22:54:39 2009
@@ -21,12 +21,24 @@
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.hive.serde2.lazy.LazyByte;
+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;
public class UDFToByte extends UDF {
private static Log LOG = LogFactory.getLog(UDFToByte.class.getName());
+ ByteWritable byteWritable = new ByteWritable();
+
public UDFToByte() {
}
@@ -36,7 +48,7 @@
* @param i The void value to convert
* @return Byte
*/
- public Byte evaluate(Void i) {
+ public ByteWritable evaluate(NullWritable i) {
return null;
}
@@ -46,11 +58,12 @@
* @param i The boolean value to convert
* @return Byte
*/
- public Byte evaluate(Boolean i) {
+ public ByteWritable evaluate(BooleanWritable i) {
if (i == null) {
return null;
} else {
- return i.booleanValue() ? (byte)1 : (byte)0;
+ byteWritable.set(i.get() ? (byte)1 : (byte)0);
+ return byteWritable;
}
}
@@ -60,11 +73,12 @@
* @param i The short value to convert
* @return Byte
*/
- public Byte evaluate(Short i) {
+ public ByteWritable evaluate(ShortWritable i) {
if (i == null) {
return null;
} else {
- return Byte.valueOf(i.byteValue());
+ byteWritable.set((byte)i.get());
+ return byteWritable;
}
}
@@ -74,11 +88,12 @@
* @param i The integer value to convert
* @return Byte
*/
- public Byte evaluate(Integer i) {
+ public ByteWritable evaluate(IntWritable i) {
if (i == null) {
return null;
} else {
- return Byte.valueOf(i.byteValue());
+ byteWritable.set((byte)i.get());
+ return byteWritable;
}
}
@@ -88,11 +103,12 @@
* @param i The long value to convert
* @return Byte
*/
- public Byte evaluate(Long i) {
+ public ByteWritable evaluate(LongWritable i) {
if (i == null) {
return null;
} else {
- return Byte.valueOf(i.byteValue());
+ byteWritable.set((byte)i.get());
+ return byteWritable;
}
}
@@ -102,11 +118,12 @@
* @param i The float value to convert
* @return Byte
*/
- public Byte evaluate(Float i) {
+ public ByteWritable evaluate(FloatWritable i) {
if (i == null) {
return null;
} else {
- return Byte.valueOf(i.byteValue());
+ byteWritable.set((byte)i.get());
+ return byteWritable;
}
}
@@ -116,11 +133,12 @@
* @param i The double value to convert
* @return Byte
*/
- public Byte evaluate(Double i) {
+ public ByteWritable evaluate(DoubleWritable i) {
if (i == null) {
return null;
} else {
- return Byte.valueOf(i.byteValue());
+ byteWritable.set((byte)i.get());
+ return byteWritable;
}
}
@@ -130,12 +148,13 @@
* @param i The string value to convert
* @return Byte
*/
- public Byte evaluate(String i) {
+ public ByteWritable evaluate(Text i) {
if (i == null) {
return null;
} else {
try {
- return Byte.valueOf(i);
+ byteWritable.set(LazyByte.parseByte(i.getBytes(), 0 , i.getLength(), 10));
+ return byteWritable;
} catch (NumberFormatException e) {
// MySQL returns 0 if the string is not a well-formed numeric value.
// return Byte.valueOf(0);
@@ -144,18 +163,5 @@
}
}
}
-
- /**
- * Convert from date to a Byte. This is called for CAST(... AS TINYINT)
- *
- * @param i The date value to convert
- * @return Byte
- */
- public Byte evaluate(java.sql.Date i) {
- if (i == null) {
- return null;
- } else {
- return Long.valueOf(i.getTime()).byteValue();
- }
- }
+
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToDouble.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToDouble.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToDouble.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToDouble.java Tue Apr 14 22:54:39 2009
@@ -21,12 +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.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.NullWritable;
+import org.apache.hadoop.io.Text;
public class UDFToDouble extends UDF {
private static Log LOG = LogFactory.getLog(UDFToDouble.class.getName());
+ DoubleWritable doubleWritable = new DoubleWritable();
+
public UDFToDouble() {
}
@@ -34,9 +45,9 @@
* Convert from void to a double. This is called for CAST(... AS DOUBLE)
*
* @param i The void value to convert
- * @return Double
+ * @return DoubleWritable
*/
- public Double evaluate(Void i) {
+ public DoubleWritable evaluate(NullWritable i) {
return null;
}
@@ -44,13 +55,14 @@
* Convert from boolean to a double. This is called for CAST(... AS DOUBLE)
*
* @param i The boolean value to convert
- * @return Double
+ * @return DoubleWritable
*/
- public Double evaluate(Boolean i) {
+ public DoubleWritable evaluate(BooleanWritable i) {
if (i == null) {
return null;
} else {
- return i.booleanValue() ? 1.0 : 0.0;
+ doubleWritable.set(i.get() ? 1.0 : 0.0);
+ return doubleWritable;
}
}
@@ -58,13 +70,14 @@
* Convert from boolean to a double. This is called for CAST(... AS DOUBLE)
*
* @param i The byte value to convert
- * @return Double
+ * @return DoubleWritable
*/
- public Double evaluate(Byte i) {
+ public DoubleWritable evaluate(ByteWritable i) {
if (i == null) {
return null;
} else {
- return Double.valueOf(i.doubleValue());
+ doubleWritable.set(i.get());
+ return doubleWritable;
}
}
@@ -72,13 +85,14 @@
* Convert from short to a double. This is called for CAST(... AS DOUBLE)
*
* @param i The short value to convert
- * @return Double
+ * @return DoubleWritable
*/
- public Double evaluate(Short i) {
+ public DoubleWritable evaluate(ShortWritable i) {
if (i == null) {
return null;
} else {
- return Double.valueOf(i.doubleValue());
+ doubleWritable.set(i.get());
+ return doubleWritable;
}
}
@@ -86,13 +100,14 @@
* Convert from integer to a double. This is called for CAST(... AS DOUBLE)
*
* @param i The integer value to convert
- * @return Double
+ * @return DoubleWritable
*/
- public Double evaluate(Integer i) {
+ public DoubleWritable evaluate(IntWritable i) {
if (i == null) {
return null;
} else {
- return Double.valueOf(i.doubleValue());
+ doubleWritable.set(i.get());
+ return doubleWritable;
}
}
@@ -100,13 +115,14 @@
* Convert from long to a double. This is called for CAST(... AS DOUBLE)
*
* @param i The long value to convert
- * @return Double
+ * @return DoubleWritable
*/
- public Double evaluate(Long i) {
+ public DoubleWritable evaluate(LongWritable i) {
if (i == null) {
return null;
} else {
- return Double.valueOf(i.doubleValue());
+ doubleWritable.set(i.get());
+ return doubleWritable;
}
}
@@ -114,13 +130,14 @@
* Convert from float to a double. This is called for CAST(... AS DOUBLE)
*
* @param i The float value to convert
- * @return Double
+ * @return DoubleWritable
*/
- public Double evaluate(Float i) {
+ public DoubleWritable evaluate(FloatWritable i) {
if (i == null) {
return null;
} else {
- return Double.valueOf(i.doubleValue());
+ doubleWritable.set(i.get());
+ return doubleWritable;
}
}
@@ -128,35 +145,22 @@
* Convert from string to a double. This is called for CAST(... AS DOUBLE)
*
* @param i The string value to convert
- * @return Double
+ * @return DoubleWritable
*/
- public Double evaluate(String i) {
+ public DoubleWritable evaluate(Text i) {
if (i == null) {
return null;
} else {
try {
- return Double.valueOf(i);
+ doubleWritable.set(Double.valueOf(i.toString()));
+ return doubleWritable;
} catch (NumberFormatException e) {
// MySQL returns 0 if the string is not a well-formed double value.
- // return Double.valueOf(0);
// But we decided to return NULL instead, which is more conservative.
return null;
}
}
}
- /**
- * Convert from date to a double. This is called for CAST(... AS DOUBLE)
- *
- * @param i The date value to convert
- * @return Double
- */
- public Double evaluate(java.sql.Date i) {
- if (i == null) {
- return null;
- } else {
- return Double.valueOf(i.getTime());
- }
- }
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToFloat.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToFloat.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToFloat.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToFloat.java Tue Apr 14 22:54:39 2009
@@ -21,12 +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.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.NullWritable;
+import org.apache.hadoop.io.Text;
public class UDFToFloat extends UDF {
private static Log LOG = LogFactory.getLog(UDFToFloat.class.getName());
+ FloatWritable floatWritable = new FloatWritable();
+
public UDFToFloat() {
}
@@ -34,9 +45,9 @@
* Convert from void to a float. This is called for CAST(... AS FLOAT)
*
* @param i The void value to convert
- * @return Float
+ * @return FloatWritable
*/
- public Float evaluate(Void i) {
+ public FloatWritable evaluate(NullWritable i) {
return null;
}
@@ -44,13 +55,14 @@
* Convert from boolean to a float. This is called for CAST(... AS FLOAT)
*
* @param i The boolean value to convert
- * @return Float
+ * @return FloatWritable
*/
- public Float evaluate(Boolean i) {
+ public FloatWritable evaluate(BooleanWritable i) {
if (i == null) {
return null;
} else {
- return i.booleanValue() ? (float)1.0 : (float)0.0;
+ floatWritable.set(i.get() ? (float)1.0 : (float)0.0);
+ return floatWritable;
}
}
@@ -58,13 +70,14 @@
* Convert from byte to a float. This is called for CAST(... AS FLOAT)
*
* @param i The byte value to convert
- * @return Float
+ * @return FloatWritable
*/
- public Float evaluate(Byte i) {
+ public FloatWritable evaluate(ByteWritable i) {
if (i == null) {
return null;
} else {
- return Float.valueOf(i.floatValue());
+ floatWritable.set((float)i.get());
+ return floatWritable;
}
}
@@ -72,13 +85,14 @@
* Convert from short to a float. This is called for CAST(... AS FLOAT)
*
* @param i The short value to convert
- * @return Float
+ * @return FloatWritable
*/
- public Float evaluate(Short i) {
+ public FloatWritable evaluate(ShortWritable i) {
if (i == null) {
return null;
} else {
- return Float.valueOf(i.floatValue());
+ floatWritable.set((float)i.get());
+ return floatWritable;
}
}
@@ -86,13 +100,14 @@
* Convert from integer to a float. This is called for CAST(... AS FLOAT)
*
* @param i The integer value to convert
- * @return Float
+ * @return FloatWritable
*/
- public Float evaluate(Integer i) {
+ public FloatWritable evaluate(IntWritable i) {
if (i == null) {
return null;
} else {
- return Float.valueOf(i.floatValue());
+ floatWritable.set((float)i.get());
+ return floatWritable;
}
}
@@ -100,13 +115,14 @@
* Convert from long to a float. This is called for CAST(... AS FLOAT)
*
* @param i The long value to convert
- * @return Float
+ * @return FloatWritable
*/
- public Float evaluate(Long i) {
+ public FloatWritable evaluate(LongWritable i) {
if (i == null) {
return null;
} else {
- return Float.valueOf(i.floatValue());
+ floatWritable.set((float)i.get());
+ return floatWritable;
}
}
@@ -114,13 +130,14 @@
* Convert from double to a float. This is called for CAST(... AS FLOAT)
*
* @param i The double value to convert
- * @return Float
+ * @return FloatWritable
*/
- public Float evaluate(Double i) {
+ public FloatWritable evaluate(DoubleWritable i) {
if (i == null) {
return null;
} else {
- return Float.valueOf(i.floatValue());
+ floatWritable.set((float)i.get());
+ return floatWritable;
}
}
@@ -128,30 +145,21 @@
* Convert from string to a float. This is called for CAST(... AS FLOAT)
*
* @param i The string value to convert
- * @return Float
+ * @return FloatWritable
*/
- public Float evaluate(String i) {
+ public FloatWritable evaluate(Text i) {
if (i == null) {
return null;
} else {
- // MySQL returns 0 if the string is not a well-formed numeric value.
- // return Float.valueOf(0);
- // But we decided to return NULL instead, which is more conservative.
- return null;
+ try {
+ floatWritable.set(Float.valueOf(i.toString()));
+ return floatWritable;
+ } catch (NumberFormatException e) {
+ // MySQL returns 0 if the string is not a well-formed numeric value.
+ // But we decided to return NULL instead, which is more conservative.
+ return null;
+ }
}
}
- /**
- * Convert from date to a float. This is called for CAST(... AS FLOAT)
- *
- * @param i The date value to convert
- * @return Float
- */
- public Float evaluate(java.sql.Date i) {
- if (i == null) {
- return null;
- } else {
- return Float.valueOf(i.getTime());
- }
- }
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToInteger.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToInteger.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToInteger.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToInteger.java Tue Apr 14 22:54:39 2009
@@ -21,12 +21,24 @@
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.hive.serde2.lazy.LazyInteger;
+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;
public class UDFToInteger extends UDF {
private static Log LOG = LogFactory.getLog(UDFToInteger.class.getName());
+ IntWritable intWritable = new IntWritable();
+
public UDFToInteger() {
}
@@ -36,7 +48,7 @@
* @param i The void value to convert
* @return Integer
*/
- public Integer evaluate(Void i) {
+ public IntWritable evaluate(NullWritable i) {
return null;
}
@@ -44,13 +56,14 @@
* Convert from boolean to an integer. This is called for CAST(... AS INT)
*
* @param i The boolean value to convert
- * @return Integer
+ * @return IntWritable
*/
- public Integer evaluate(Boolean i) {
+ public IntWritable evaluate(BooleanWritable i) {
if (i == null) {
return null;
} else {
- return i.booleanValue() ? 1 : 0;
+ intWritable.set(i.get() ? 1 : 0);
+ return intWritable;
}
}
@@ -58,13 +71,14 @@
* Convert from byte to an integer. This is called for CAST(... AS INT)
*
* @param i The byte value to convert
- * @return Integer
+ * @return IntWritable
*/
- public Integer evaluate(Byte i) {
+ public IntWritable evaluate(ByteWritable i) {
if (i == null) {
return null;
} else {
- return Integer.valueOf(i.intValue());
+ intWritable.set((int)i.get());
+ return intWritable;
}
}
@@ -72,13 +86,14 @@
* Convert from short to an integer. This is called for CAST(... AS INT)
*
* @param i The short value to convert
- * @return Integer
+ * @return IntWritable
*/
- public Integer evaluate(Short i) {
+ public IntWritable evaluate(ShortWritable i) {
if (i == null) {
return null;
} else {
- return Integer.valueOf(i.shortValue());
+ intWritable.set((int)i.get());
+ return intWritable;
}
}
@@ -86,13 +101,14 @@
* Convert from long to an integer. This is called for CAST(... AS INT)
*
* @param i The long value to convert
- * @return Integer
+ * @return IntWritable
*/
- public Integer evaluate(Long i) {
+ public IntWritable evaluate(LongWritable i) {
if (i == null) {
return null;
} else {
- return Integer.valueOf(i.intValue());
+ intWritable.set((int)i.get());
+ return intWritable;
}
}
@@ -100,13 +116,14 @@
* Convert from float to an integer. This is called for CAST(... AS INT)
*
* @param i The float value to convert
- * @return Integer
+ * @return IntWritable
*/
- public Integer evaluate(Float i) {
+ public IntWritable evaluate(FloatWritable i) {
if (i == null) {
return null;
} else {
- return Integer.valueOf(i.intValue());
+ intWritable.set((int)i.get());
+ return intWritable;
}
}
@@ -114,13 +131,14 @@
* Convert from double to an integer. This is called for CAST(... AS INT)
*
* @param i The double value to convert
- * @return Integer
+ * @return IntWritable
*/
- public Integer evaluate(Double i) {
+ public IntWritable evaluate(DoubleWritable i) {
if (i == null) {
return null;
} else {
- return Integer.valueOf(i.intValue());
+ intWritable.set((int)i.get());
+ return intWritable;
}
}
@@ -128,34 +146,22 @@
* Convert from string to an integer. This is called for CAST(... AS INT)
*
* @param i The string value to convert
- * @return Integer
+ * @return IntWritable
*/
- public Integer evaluate(String i) {
+ public IntWritable evaluate(Text i) {
if (i == null) {
return null;
} else {
try {
- return Integer.valueOf(i);
+ intWritable.set(LazyInteger.parseInt(i.getBytes(), 0 , i.getLength(), 10));
+ return intWritable;
} catch (NumberFormatException e) {
// MySQL returns 0 if the string is not a well-formed numeric value.
- // return Integer.valueOf(0);
+ // return IntWritable.valueOf(0);
// But we decided to return NULL instead, which is more conservative.
return null;
}
}
}
- /**
- * Convert from date to an integer. This is called for CAST(... AS INT)
- *
- * @param i The date value to convert
- * @return Integer
- */
- public Integer evaluate(java.sql.Date i) {
- if (i == null) {
- return null;
- } else {
- return Long.valueOf(i.getTime()).intValue();
- }
- }
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToLong.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToLong.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToLong.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToLong.java Tue Apr 14 22:54:39 2009
@@ -21,12 +21,24 @@
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.hive.serde2.lazy.LazyLong;
+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;
public class UDFToLong extends UDF {
private static Log LOG = LogFactory.getLog(UDFToLong.class.getName());
+ LongWritable longWritable = new LongWritable();
+
public UDFToLong() {
}
@@ -34,9 +46,9 @@
* Convert from void to a long. This is called for CAST(... AS BIGINT)
*
* @param i The void value to convert
- * @return Long
+ * @return LongWritable
*/
- public Long evaluate(Void i) {
+ public LongWritable evaluate(NullWritable i) {
return null;
}
@@ -44,13 +56,14 @@
* Convert from boolean to a long. This is called for CAST(... AS BIGINT)
*
* @param i The boolean value to convert
- * @return Long
+ * @return LongWritable
*/
- public Long evaluate(Boolean i) {
+ public LongWritable evaluate(BooleanWritable i) {
if (i == null) {
return null;
} else {
- return i.booleanValue() ? (long)1 : (long)0;
+ longWritable.set(i.get()? (long)1 : (long) 0);
+ return longWritable;
}
}
@@ -58,13 +71,14 @@
* Convert from byte to a long. This is called for CAST(... AS BIGINT)
*
* @param i The byte value to convert
- * @return Long
+ * @return LongWritable
*/
- public Long evaluate(Byte i) {
+ public LongWritable evaluate(ByteWritable i) {
if (i == null) {
return null;
} else {
- return Long.valueOf(i.longValue());
+ longWritable.set((long)i.get());
+ return longWritable;
}
}
@@ -72,13 +86,14 @@
* Convert from short to a long. This is called for CAST(... AS BIGINT)
*
* @param i The short value to convert
- * @return Long
+ * @return LongWritable
*/
- public Long evaluate(Short i) {
+ public LongWritable evaluate(ShortWritable i) {
if (i == null) {
return null;
} else {
- return Long.valueOf(i.longValue());
+ longWritable.set((long)i.get());
+ return longWritable;
}
}
@@ -86,13 +101,14 @@
* Convert from integer to a long. This is called for CAST(... AS BIGINT)
*
* @param i The integer value to convert
- * @return Long
+ * @return LongWritable
*/
- public Long evaluate(Integer i) {
+ public LongWritable evaluate(IntWritable i) {
if (i == null) {
return null;
} else {
- return Long.valueOf(i.longValue());
+ longWritable.set((long)i.get());
+ return longWritable;
}
}
@@ -100,9 +116,9 @@
* Convert from long to a long. This is called for CAST(... AS BIGINT)
*
* @param i The long value to convert
- * @return Long
+ * @return LongWritable
*/
- public Long evaluate(Long i) {
+ public LongWritable evaluate(LongWritable i) {
return i;
}
@@ -110,13 +126,14 @@
* Convert from float to a long. This is called for CAST(... AS BIGINT)
*
* @param i The float value to convert
- * @return Long
+ * @return LongWritable
*/
- public Long evaluate(Float i) {
+ public LongWritable evaluate(FloatWritable i) {
if (i == null) {
return null;
} else {
- return Long.valueOf(i.longValue());
+ longWritable.set((long)i.get());
+ return longWritable;
}
}
@@ -124,13 +141,14 @@
* Convert from double to a long. This is called for CAST(... AS BIGINT)
*
* @param i The double value to convert
- * @return Long
+ * @return LongWritable
*/
- public Long evaluate(Double i) {
+ public LongWritable evaluate(DoubleWritable i) {
if (i == null) {
return null;
} else {
- return Long.valueOf(i.longValue());
+ longWritable.set((long)i.get());
+ return longWritable;
}
}
@@ -138,34 +156,22 @@
* Convert from string to a long. This is called for CAST(... AS BIGINT)
*
* @param i The string value to convert
- * @return Long
+ * @return LongWritable
*/
- public Long evaluate(String i) {
+ public LongWritable evaluate(Text i) {
if (i == null) {
return null;
} else {
try {
- return Long.valueOf(i);
+ longWritable.set(LazyLong.parseLong(i.getBytes(), 0 , i.getLength(), 10));
+ return longWritable;
} catch (NumberFormatException e) {
// MySQL returns 0 if the string is not a well-formed numeric value.
- // return Long.valueOf(0);
+ // return LongWritable.valueOf(0);
// But we decided to return NULL instead, which is more conservative.
return null;
}
}
}
- /**
- * Convert from date to a long. This is called for CAST(... AS BIGINT)
- *
- * @param i The date value to convert
- * @return Long
- */
- public Long evaluate(java.sql.Date i) {
- if (i == null) {
- return null;
- } else {
- return Long.valueOf(i.getTime());
- }
- }
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToShort.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToShort.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToShort.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToShort.java Tue Apr 14 22:54:39 2009
@@ -21,12 +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.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.ShortWritable;
+import org.apache.hadoop.hive.serde2.lazy.LazyByte;
+import org.apache.hadoop.hive.serde2.lazy.LazyShort;
+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;
public class UDFToShort extends UDF {
private static Log LOG = LogFactory.getLog(UDFToByte.class.getName());
+ ShortWritable shortWritable = new ShortWritable();
+
public UDFToShort() {
}
@@ -34,9 +47,9 @@
* Convert from void to a short. This is called for CAST(... AS SMALLINT)
*
* @param i The void value to convert
- * @return Short
+ * @return ShortWritable
*/
- public Short evaluate(Void i) {
+ public ShortWritable evaluate(NullWritable i) {
return null;
}
@@ -44,13 +57,14 @@
* Convert from boolean to a short. This is called for CAST(... AS SMALLINT)
*
* @param i The boolean value to convert
- * @return Short
+ * @return ShortWritable
*/
- public Short evaluate(Boolean i) {
+ public ShortWritable evaluate(BooleanWritable i) {
if (i == null) {
return null;
} else {
- return i.booleanValue() ? (short)1 : (short)0;
+ shortWritable.set(i.get() ? (short)1 : (short)0);
+ return shortWritable;
}
}
@@ -58,13 +72,14 @@
* Convert from byte to a short. This is called for CAST(... AS SMALLINT)
*
* @param i The byte value to convert
- * @return Short
+ * @return ShortWritable
*/
- public Short evaluate(Byte i) {
+ public ShortWritable evaluate(ByteWritable i) {
if (i == null) {
return null;
} else {
- return Short.valueOf(i.shortValue());
+ shortWritable.set((short)i.get());
+ return shortWritable;
}
}
@@ -72,13 +87,14 @@
* Convert from integer to a short. This is called for CAST(... AS SMALLINT)
*
* @param i The integer value to convert
- * @return Short
+ * @return ShortWritable
*/
- public Short evaluate(Integer i) {
+ public ShortWritable evaluate(IntWritable i) {
if (i == null) {
return null;
} else {
- return Short.valueOf(i.shortValue());
+ shortWritable.set((short)i.get());
+ return shortWritable;
}
}
@@ -86,13 +102,14 @@
* Convert from long to a short. This is called for CAST(... AS SMALLINT)
*
* @param i The long value to convert
- * @return Short
+ * @return ShortWritable
*/
- public Short evaluate(Long i) {
+ public ShortWritable evaluate(LongWritable i) {
if (i == null) {
return null;
} else {
- return Short.valueOf(i.shortValue());
+ shortWritable.set((short)i.get());
+ return shortWritable;
}
}
@@ -100,13 +117,14 @@
* Convert from float to a short. This is called for CAST(... AS SMALLINT)
*
* @param i The float value to convert
- * @return Short
+ * @return ShortWritable
*/
- public Short evaluate(Float i) {
+ public ShortWritable evaluate(FloatWritable i) {
if (i == null) {
return null;
} else {
- return Short.valueOf(i.shortValue());
+ shortWritable.set((short)i.get());
+ return shortWritable;
}
}
@@ -114,13 +132,14 @@
* Convert from double to a short. This is called for CAST(... AS SMALLINT)
*
* @param i The double value to convert
- * @return Short
+ * @return ShortWritable
*/
- public Short evaluate(Double i) {
+ public ShortWritable evaluate(DoubleWritable i) {
if (i == null) {
return null;
} else {
- return Short.valueOf(i.shortValue());
+ shortWritable.set((short)i.get());
+ return shortWritable;
}
}
@@ -128,14 +147,15 @@
* Convert from string to a short. This is called for CAST(... AS SMALLINT)
*
* @param i The string value to convert
- * @return Short
+ * @return ShortWritable
*/
- public Short evaluate(String i) {
+ public ShortWritable evaluate(Text i) {
if (i == null) {
return null;
} else {
try {
- return Short.valueOf(i);
+ shortWritable.set(LazyShort.parseShort(i.getBytes(), 0 , i.getLength(), 10));
+ return shortWritable;
} catch (NumberFormatException e) {
// MySQL returns 0 if the string is not a well-formed numeric value.
// return Byte.valueOf(0);
@@ -144,18 +164,4 @@
}
}
}
-
- /**
- * Convert from date to a short. This is called for CAST(... AS SMALLINT)
- *
- * @param i The date value to convert
- * @return Short
- */
- public Short evaluate(java.sql.Date i) {
- if (i == null) {
- return null;
- } else {
- return Long.valueOf(i.getTime()).shortValue();
- }
- }
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java Tue Apr 14 22:54:39 2009
@@ -22,85 +22,106 @@
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.serde2.ByteStream;
+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.lazy.LazyInteger;
+import org.apache.hadoop.hive.serde2.lazy.LazyLong;
+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;
+
public class UDFToString extends UDF {
private static Log LOG = LogFactory.getLog(UDFToString.class.getName());
+ Text t = new Text();
+ ByteStream.Output out = new ByteStream.Output();
+
public UDFToString() {
}
- public String evaluate(Void i) {
+ public Text evaluate(NullWritable i) {
return null;
}
- public String evaluate(Boolean i) {
+ byte[] trueBytes = {'T', 'R', 'U', 'E'};
+ byte[] falseBytes = {'F', 'A', 'L', 'S', 'E'};
+ public Text evaluate(BooleanWritable i) {
if (i == null) {
return null;
} else {
- return i.booleanValue() ? "TRUE" : "FALSE";
+ t.clear();
+ t.set(i.get() ? trueBytes : falseBytes);
+ return t;
}
}
- public String evaluate(Byte i) {
+ public Text evaluate(ByteWritable i) {
if (i == null) {
return null;
} else {
- return i.toString();
+ out.reset();
+ LazyInteger.writeUTF8NoException(out, i.get());
+ t.set(out.getData(), 0, out.getCount());
+ return t;
}
}
- public String evaluate(Short i) {
+ public Text evaluate(ShortWritable i) {
if (i == null) {
return null;
} else {
- return i.toString();
+ out.reset();
+ LazyInteger.writeUTF8NoException(out, i.get());
+ t.set(out.getData(), 0, out.getCount());
+ return t;
}
}
- public String evaluate(Integer i) {
+ public Text evaluate(IntWritable i) {
if (i == null) {
return null;
} else {
- return i.toString();
+ out.reset();
+ LazyInteger.writeUTF8NoException(out, i.get());
+ t.set(out.getData(), 0, out.getCount());
+ return t;
}
}
- public String evaluate(Long i) {
+ public Text evaluate(LongWritable i) {
if (i == null) {
return null;
} else {
- return i.toString();
+ out.reset();
+ LazyLong.writeUTF8NoException(out, i.get());
+ t.set(out.getData(), 0, out.getCount());
+ return t;
}
}
- public String evaluate(Float i) {
+ public Text evaluate(FloatWritable i) {
if (i == null) {
return null;
} else {
- return i.toString();
+ t.set(i.toString());
+ return t;
}
}
- public String evaluate(Double i) {
+ public Text evaluate(DoubleWritable i) {
if (i == null) {
return null;
} else {
- return i.toString();
+ t.set(i.toString());
+ return t;
}
}
- /**
- * Convert from date to a string. This is called for CAST(... AS STRING)
- *
- * @param i The date value to convert
- * @return String
- */
- public String evaluate(java.sql.Date i) {
- if (i == null) {
- return null;
- } else {
- return i.toString();
- }
- }
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTrim.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTrim.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTrim.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTrim.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 UDFTrim extends UDF {
+ Text result = new Text();
public UDFTrim() {
}
- public String evaluate(String s) {
+ public Text evaluate(Text s) {
if (s == null) {
return null;
}
- return StringUtils.strip(s, " ");
+ result.set(StringUtils.strip(s.toString(), " "));
+ return result;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFUnixTimeStamp.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFUnixTimeStamp.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFUnixTimeStamp.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFUnixTimeStamp.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.LongWritable;
+import org.apache.hadoop.io.Text;
@UDFType(deterministic=false)
@@ -36,6 +38,7 @@
// For now, we just use the default time zone.
private SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ LongWritable result = new LongWritable();
public UDFUnixTimeStamp() {
}
@@ -43,43 +46,51 @@
* Return current UnixTime.
* @return long Number of seconds from 1970-01-01 00:00:00
*/
- public long evaluate() {
+ public LongWritable evaluate() {
Date date = new Date();
- return date.getTime() / 1000;
+ result.set(date.getTime() / 1000);
+ return result;
}
/**
* Convert time string to UnixTime.
- * @param datestring Time string in format yyyy-MM-dd HH:mm:ss
+ * @param dateText Time string in format yyyy-MM-dd HH:mm:ss
* @return long Number of seconds from 1970-01-01 00:00:00
*/
- public long evaluate(String datestring) {
- if (datestring == null) {
- Date date = new Date();
- return date.getTime() / 1000;
+ public LongWritable evaluate(Text dateText) {
+ if (dateText == null) {
+ return null;
}
try {
- Date date = (Date)formatter.parse(datestring);
- return date.getTime() / 1000;
+ Date date = (Date)formatter.parse(dateText.toString());
+ result.set(date.getTime() / 1000);
+ return result;
} catch (ParseException e) {
- return 0;
+ return null;
}
}
+ Text lastPatternText = new Text();
/**
* Convert time string to UnixTime with user defined pattern.
- * @param datestring Time string in format patternstring
- * @param patternstring Time patterns string supported by SimpleDateFormat
+ * @param dateText Time string in format patternstring
+ * @param patternText Time patterns string supported by SimpleDateFormat
* @return long Number of seconds from 1970-01-01 00:00:00
*/
- public long evaluate(String datestring, String patternstring) {
+ public LongWritable evaluate(Text dateText, Text patternText) {
+ if (dateText == null || patternText == null) {
+ return null;
+ }
try {
- formatter.applyPattern(patternstring);
+ if (!patternText.equals(lastPatternText)) {
+ formatter.applyPattern(patternText.toString());
+ lastPatternText.set(patternText);
+ }
} catch (Exception e) {
- return 0;
+ return null;
}
- return evaluate(datestring);
+ return evaluate(dateText);
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFUpper.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFUpper.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFUpper.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFUpper.java Tue Apr 14 22:54:39 2009
@@ -19,19 +19,20 @@
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
-import java.util.regex.Pattern;
-import java.util.regex.Matcher;
+import org.apache.hadoop.io.Text;
public class UDFUpper extends UDF {
+ Text t = new Text();
public UDFUpper() {
}
- public String evaluate(String s) {
+ public Text evaluate(Text s) {
if (s == null) {
return null;
}
- return s.toUpperCase();
+ t.set(s.toString().toUpperCase());
+ return t;
}
}
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.java?rev=764994&r1=764993&r2=764994&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.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 UDFYear extends UDF {
@@ -35,6 +37,7 @@
private SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
private Calendar calendar = Calendar.getInstance();
+ IntWritable result = new IntWritable();
public UDFYear() {
}
@@ -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 calendar.get(Calendar.YEAR);
+ result.set(calendar.get(Calendar.YEAR));
+ return result;
} catch (ParseException e) {
return null;
}