You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by br...@apache.org on 2013/10/28 19:44:09 UTC
svn commit: r1536480 [7/12] - in /hive/branches/maven: ./
ant/src/org/apache/hadoop/hive/ant/ common/src/java/conf/
common/src/java/org/apache/hadoop/hive/common/type/
common/src/test/org/apache/hadoop/hive/common/type/ data/files/
hcatalog/core/src/ma...
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSubstr.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSubstr.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSubstr.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFSubstr.java Mon Oct 28 18:44:01 2013
@@ -22,6 +22,9 @@ import java.util.Arrays;
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.StringSubstrColStart;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.StringSubstrColStartLen;
import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
@@ -44,6 +47,7 @@ import org.apache.hadoop.io.Text;
+ " 'ebook'\n"
+ " > SELECT _FUNC_('Facebook', 5, 1) FROM src LIMIT 1;\n"
+ " 'b'")
+@VectorizedExpressions({StringSubstrColStart.class, StringSubstrColStartLen.class})
public class UDFSubstr extends UDF {
private final int[] index;
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTan.java Mon Oct 28 18:44:01 2013
@@ -22,6 +22,9 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FuncTanDoubleToDouble;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FuncTanLongToDouble;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
@Description(
@@ -31,6 +34,7 @@ import org.apache.hadoop.hive.serde2.io.
" > SELECT _FUNC_(0) FROM src LIMIT 1;\n" +
" 1"
)
+@VectorizedExpressions({FuncTanLongToDouble.class, FuncTanDoubleToDouble.class})
public class UDFTan extends UDF {
@SuppressWarnings("unused")
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToBoolean.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToBoolean.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToBoolean.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToBoolean.java Mon Oct 28 18:44:01 2013
@@ -21,6 +21,9 @@ package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.common.type.HiveDecimal;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastDoubleToBooleanViaDoubleToLong;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastLongToBooleanViaLongToLong;
import org.apache.hadoop.hive.serde2.io.ByteWritable;
import org.apache.hadoop.hive.serde2.io.DateWritable;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
@@ -38,6 +41,8 @@ import org.apache.hadoop.io.Text;
* UDFToBoolean.
*
*/
+@VectorizedExpressions({CastLongToBooleanViaLongToLong.class,
+ CastDoubleToBooleanViaDoubleToLong.class})
public class UDFToBoolean extends UDF {
private final BooleanWritable booleanWritable = new BooleanWritable();
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToByte.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToByte.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToByte.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToByte.java Mon Oct 28 18:44:01 2013
@@ -19,6 +19,9 @@
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastDoubleToLong;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastTimestampToLongViaLongToLong;
import org.apache.hadoop.hive.serde2.io.ByteWritable;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
@@ -36,6 +39,7 @@ import org.apache.hadoop.io.Text;
* UDFToByte.
*
*/
+@VectorizedExpressions({CastTimestampToLongViaLongToLong.class, CastDoubleToLong.class})
public class UDFToByte extends UDF {
private final ByteWritable byteWritable = new ByteWritable();
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToDouble.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToDouble.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToDouble.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToDouble.java Mon Oct 28 18:44:01 2013
@@ -19,6 +19,9 @@
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastLongToDouble;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastTimestampToDoubleViaLongToDouble;
import org.apache.hadoop.hive.serde2.io.ByteWritable;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
@@ -34,6 +37,7 @@ import org.apache.hadoop.io.Text;
* UDFToDouble.
*
*/
+@VectorizedExpressions({CastTimestampToDoubleViaLongToDouble.class, CastLongToDouble.class})
public class UDFToDouble extends UDF {
private final DoubleWritable doubleWritable = new DoubleWritable();
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToFloat.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToFloat.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToFloat.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToFloat.java Mon Oct 28 18:44:01 2013
@@ -19,6 +19,9 @@
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastLongToDouble;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastTimestampToDoubleViaLongToDouble;
import org.apache.hadoop.hive.serde2.io.ByteWritable;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
@@ -35,6 +38,7 @@ import org.apache.hadoop.io.Text;
* UDFToFloat.
*
*/
+@VectorizedExpressions({CastTimestampToDoubleViaLongToDouble.class, CastLongToDouble.class})
public class UDFToFloat extends UDF {
private final FloatWritable floatWritable = new FloatWritable();
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToInteger.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToInteger.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToInteger.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToInteger.java Mon Oct 28 18:44:01 2013
@@ -19,6 +19,9 @@
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastDoubleToLong;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastTimestampToLongViaLongToLong;
import org.apache.hadoop.hive.serde2.io.ByteWritable;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
@@ -36,6 +39,7 @@ import org.apache.hadoop.io.Text;
* UDFToInteger.
*
*/
+@VectorizedExpressions({CastTimestampToLongViaLongToLong.class, CastDoubleToLong.class})
public class UDFToInteger extends UDF {
private final IntWritable intWritable = new IntWritable();
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToLong.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToLong.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToLong.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToLong.java Mon Oct 28 18:44:01 2013
@@ -19,6 +19,9 @@
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastDoubleToLong;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastTimestampToLongViaLongToLong;
import org.apache.hadoop.hive.serde2.io.ByteWritable;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
@@ -36,6 +39,7 @@ import org.apache.hadoop.io.Text;
* UDFToLong.
*
*/
+@VectorizedExpressions({CastTimestampToLongViaLongToLong.class, CastDoubleToLong.class})
public class UDFToLong extends UDF {
private final LongWritable longWritable = new LongWritable();
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToShort.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToShort.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToShort.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToShort.java Mon Oct 28 18:44:01 2013
@@ -19,6 +19,9 @@
package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastDoubleToLong;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastTimestampToLongViaLongToLong;
import org.apache.hadoop.hive.serde2.io.ByteWritable;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
@@ -36,6 +39,7 @@ import org.apache.hadoop.io.Text;
* UDFToShort.
*
*/
+@VectorizedExpressions({CastTimestampToLongViaLongToLong.class, CastDoubleToLong.class})
public class UDFToShort extends UDF {
ShortWritable shortWritable = new ShortWritable();
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java Mon Oct 28 18:44:01 2013
@@ -20,12 +20,11 @@ package org.apache.hadoop.hive.ql.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.hive.serde2.ByteStream;
-import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
-import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
import org.apache.hadoop.hive.serde2.io.ByteWritable;
+import org.apache.hadoop.hive.serde2.io.DateWritable;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
+import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
import org.apache.hadoop.hive.serde2.io.ShortWritable;
-import org.apache.hadoop.hive.serde2.io.DateWritable;
import org.apache.hadoop.hive.serde2.io.TimestampWritable;
import org.apache.hadoop.hive.serde2.lazy.LazyInteger;
import org.apache.hadoop.hive.serde2.lazy.LazyLong;
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTrim.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTrim.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTrim.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFTrim.java Mon Oct 28 18:44:01 2013
@@ -21,16 +21,19 @@ package org.apache.hadoop.hive.ql.udf;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.StringTrim;
import org.apache.hadoop.io.Text;
/**
* UDFTrim.
*
*/
-@Description(name = "trim",
+@Description(name = "trim",
value = "_FUNC_(str) - Removes the leading and trailing space characters from str ",
extended = "Example:\n"
+ " > SELECT _FUNC_(' facebook ') FROM src LIMIT 1;\n" + " 'facebook'")
+@VectorizedExpressions({StringTrim.class})
public class UDFTrim extends UDF {
Text result = new Text();
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFWeekOfYear.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFWeekOfYear.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFWeekOfYear.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFWeekOfYear.java Mon Oct 28 18:44:01 2013
@@ -25,6 +25,8 @@ import java.util.Date;
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorUDFWeekOfYearLong;
import org.apache.hadoop.hive.serde2.io.DateWritable;
import org.apache.hadoop.hive.serde2.io.TimestampWritable;
import org.apache.hadoop.io.IntWritable;
@@ -41,11 +43,12 @@ import org.apache.hadoop.io.Text;
+ " > SELECT _FUNC_('2008-02-20') FROM src LIMIT 1;\n"
+ " 8\n"
+ " > SELECT _FUNC_('1980-12-31 12:59:59') FROM src LIMIT 1;\n" + " 1")
+@VectorizedExpressions({VectorUDFWeekOfYearLong.class})
public class UDFWeekOfYear extends UDF {
private final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
private final Calendar calendar = Calendar.getInstance();
- private IntWritable result = new IntWritable();
+ private final IntWritable result = new IntWritable();
public UDFWeekOfYear() {
calendar.setFirstDayOfWeek(Calendar.MONDAY);
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFYear.java Mon Oct 28 18:44:01 2013
@@ -25,6 +25,8 @@ import java.util.Date;
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorUDFYearLong;
import org.apache.hadoop.hive.serde2.io.DateWritable;
import org.apache.hadoop.hive.serde2.io.TimestampWritable;
import org.apache.hadoop.io.IntWritable;
@@ -40,11 +42,12 @@ import org.apache.hadoop.io.Text;
+ "'yyyy-MM-dd'.\n"
+ "Example:\n "
+ " > SELECT _FUNC_('2009-30-07', 1) FROM src LIMIT 1;\n" + " 2009")
+@VectorizedExpressions({VectorUDFYearLong.class})
public class UDFYear extends UDF {
private final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
private final Calendar calendar = Calendar.getInstance();
- private IntWritable result = new IntWritable();
+ private final IntWritable result = new IntWritable();
public UDFYear() {
}
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAbs.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAbs.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAbs.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAbs.java Mon Oct 28 18:44:01 2013
@@ -22,6 +22,9 @@ import org.apache.hadoop.hive.common.typ
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FuncAbsDoubleToDouble;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FuncAbsLongToLong;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
@@ -45,6 +48,7 @@ import org.apache.hadoop.io.LongWritable
+ " > SELECT _FUNC_(0) FROM src LIMIT 1;\n"
+ " 0\n"
+ " > SELECT _FUNC_(-5) FROM src LIMIT 1;\n" + " 5")
+@VectorizedExpressions({FuncAbsLongToLong.class, FuncAbsDoubleToDouble.class})
public class GenericUDFAbs extends GenericUDF {
private transient PrimitiveCategory inputType;
private final DoubleWritable resultDouble = new DoubleWritable();
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java Mon Oct 28 18:44:01 2013
@@ -23,14 +23,17 @@ import java.lang.reflect.Method;
import java.util.ArrayList;
import org.apache.hadoop.hive.common.JavaUtils;
+import org.apache.hadoop.hive.common.type.HiveDecimal;
import org.apache.hadoop.hive.ql.exec.FunctionRegistry;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFUtils.ConversionHelper;
+import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory.ObjectInspectorOptions;
+import org.apache.hadoop.hive.serde2.typeinfo.HiveDecimalUtils;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
@@ -178,6 +181,13 @@ public class GenericUDFBridge extends Ge
Object result = FunctionRegistry.invoke(udfMethod, udf, conversionHelper
.convertIfNecessary(realArguments));
+ // For non-generic UDF, type info isn't available. This poses a problem for Hive Decimal.
+ // If the returned value is HiveDecimal, we assume maximum precision/scale.
+ if (result != null && result instanceof HiveDecimalWritable) {
+ result = HiveDecimalUtils.enforcePrecisionScale((HiveDecimalWritable) result,
+ HiveDecimal.MAX_PRECISION, HiveDecimal.MAX_SCALE);
+ }
+
return result;
}
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFConcat.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFConcat.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFConcat.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFConcat.java Mon Oct 28 18:44:01 2013
@@ -21,6 +21,10 @@ package org.apache.hadoop.hive.ql.udf.ge
import org.apache.hadoop.hive.common.type.HiveVarchar;
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.StringConcatColCol;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.StringConcatColScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.StringConcatScalarCol;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
@@ -44,6 +48,8 @@ extended = "Returns NULL if any argument
+ "Example:\n"
+ " > SELECT _FUNC_('abc', 'def') FROM src LIMIT 1;\n"
+ " 'abcdef'")
+@VectorizedExpressions({StringConcatColCol.class, StringConcatColScalar.class,
+ StringConcatScalarCol.class})
public class GenericUDFConcat extends GenericUDF {
private transient ObjectInspector[] argumentOIs;
private transient StringConverter[] stringConverters;
@@ -55,7 +61,6 @@ public class GenericUDFConcat extends Ge
public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException {
// Loop through all the inputs to determine the appropriate return type/length.
- // Either all arguments are binary, or all columns are non-binary.
// Return type:
// All VARCHAR inputs: return VARCHAR
// All BINARY inputs: return BINARY
@@ -79,21 +84,16 @@ public class GenericUDFConcat extends Ge
case BINARY:
fixedLengthReturnValue = false;
if (returnType != currentCategory) {
- throw new UDFArgumentException(
- "CONCAT cannot take a mix of binary and non-binary arguments");
+ // mix of binary/non-binary args
+ returnType = PrimitiveCategory.STRING;
}
break;
case VARCHAR:
- if (returnType == PrimitiveCategory.BINARY) {
- throw new UDFArgumentException(
- "CONCAT cannot take a mix of binary and non-binary arguments");
+ if (!fixedLengthReturnValue) {
+ returnType = PrimitiveCategory.STRING;
}
break;
default:
- if (returnType == PrimitiveCategory.BINARY) {
- throw new UDFArgumentException(
- "CONCAT cannot take a mix of binary and non-binary arguments");
- }
returnType = PrimitiveCategory.STRING;
fixedLengthReturnValue = false;
break;
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLower.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLower.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLower.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLower.java Mon Oct 28 18:44:01 2013
@@ -21,6 +21,8 @@ package org.apache.hadoop.hive.ql.udf.ge
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.StringLower;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
@@ -40,6 +42,7 @@ import org.apache.hadoop.hive.serde2.typ
value = "_FUNC_(str) - Returns str with all characters changed to lowercase",
extended = "Example:\n"
+ " > SELECT _FUNC_('Facebook') FROM src LIMIT 1;\n" + " 'facebook'")
+@VectorizedExpressions({StringLower.class})
public class GenericUDFLower extends GenericUDF {
private transient PrimitiveObjectInspector argumentOI;
private transient StringConverter stringConverter;
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPAnd.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPAnd.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPAnd.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPAnd.java Mon Oct 28 18:44:01 2013
@@ -21,6 +21,11 @@ package org.apache.hadoop.hive.ql.udf.ge
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.ColAndCol;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.FilterColAndScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.FilterExprAndExpr;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.FilterScalarAndColumn;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspector;
@@ -31,6 +36,8 @@ import org.apache.hadoop.io.BooleanWrita
* GenericUDF Class for computing and.
*/
@Description(name = "and", value = "a _FUNC_ b - Logical and")
+@VectorizedExpressions({ColAndCol.class, FilterExprAndExpr.class, FilterColAndScalar.class,
+ FilterScalarAndColumn.class})
public class GenericUDFOPAnd extends GenericUDF {
private final BooleanWritable result = new BooleanWritable();
private transient BooleanObjectInspector boi0,boi1;
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqual.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqual.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqual.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqual.java Mon Oct 28 18:44:01 2013
@@ -19,6 +19,37 @@
package org.apache.hadoop.hive.ql.udf.generic;
import org.apache.hadoop.hive.ql.exec.Description;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleScalarEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleScalarEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleScalarEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleScalarEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongScalarEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongScalarEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringColEqualStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringColEqualStringScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringScalarEqualStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongScalarEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongScalarEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringColEqualStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringColEqualStringScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringScalarEqualStringColumn;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
@@ -26,6 +57,21 @@ import org.apache.hadoop.hive.serde2.obj
* GenericUDF Class for operation EQUAL.
*/
@Description(name = "=", value = "a _FUNC_ b - Returns TRUE if a equals b and false otherwise")
+@VectorizedExpressions({LongColEqualLongColumn.class, LongColEqualDoubleColumn.class,
+ DoubleColEqualLongColumn.class, DoubleColEqualDoubleColumn.class,
+ LongColEqualLongScalar.class, LongColEqualDoubleScalar.class,
+ DoubleColEqualLongScalar.class, DoubleColEqualDoubleScalar.class,
+ LongScalarEqualLongColumn.class, LongScalarEqualDoubleColumn.class,
+ DoubleScalarEqualLongColumn.class, DoubleScalarEqualDoubleColumn.class,
+ StringColEqualStringColumn.class, StringColEqualStringScalar.class,
+ StringScalarEqualStringColumn.class, FilterStringColEqualStringColumn.class,
+ FilterStringColEqualStringScalar.class, FilterStringScalarEqualStringColumn.class,
+ FilterLongColEqualLongColumn.class, FilterLongColEqualDoubleColumn.class,
+ FilterDoubleColEqualLongColumn.class, FilterDoubleColEqualDoubleColumn.class,
+ FilterLongColEqualLongScalar.class, FilterLongColEqualDoubleScalar.class,
+ FilterDoubleColEqualLongScalar.class, FilterDoubleColEqualDoubleScalar.class,
+ FilterLongScalarEqualLongColumn.class, FilterLongScalarEqualDoubleColumn.class,
+ FilterDoubleScalarEqualLongColumn.class, FilterDoubleScalarEqualDoubleColumn.class})
public class GenericUDFOPEqual extends GenericUDFBaseCompare {
public GenericUDFOPEqual(){
this.opName = "EQUAL";
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqualOrGreaterThan.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqualOrGreaterThan.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqualOrGreaterThan.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqualOrGreaterThan.java Mon Oct 28 18:44:01 2013
@@ -19,6 +19,37 @@
package org.apache.hadoop.hive.ql.udf.generic;
import org.apache.hadoop.hive.ql.exec.Description;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColGreaterEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColGreaterEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColGreaterEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColGreaterEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleScalarGreaterEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleScalarGreaterEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColGreaterEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColGreaterEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColGreaterEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColGreaterEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleScalarGreaterEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleScalarGreaterEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColGreaterEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColGreaterEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColGreaterEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColGreaterEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongScalarGreaterEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongScalarGreaterEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringColGreaterEqualStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringColGreaterEqualStringScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringScalarGreaterEqualStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColGreaterEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColGreaterEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColGreaterEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColGreaterEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongScalarGreaterEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongScalarGreaterEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringColGreaterEqualStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringColGreaterEqualStringScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringScalarGreaterEqualStringColumn;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
import org.apache.hadoop.hive.shims.ShimLoader;
@@ -28,6 +59,21 @@ import org.apache.hadoop.io.Text;
* GenericUDF Class for operation EqualOrGreaterThan.
*/
@Description(name = ">=", value = "a _FUNC_ b - Returns TRUE if a is not smaller than b")
+@VectorizedExpressions({LongColGreaterEqualLongColumn.class, LongColGreaterEqualDoubleColumn.class,
+ DoubleColGreaterEqualLongColumn.class, DoubleColGreaterEqualDoubleColumn.class,
+ LongColGreaterEqualLongScalar.class, LongColGreaterEqualDoubleScalar.class,
+ DoubleColGreaterEqualLongScalar.class, DoubleColGreaterEqualDoubleScalar.class,
+ LongScalarGreaterEqualLongColumn.class, LongScalarGreaterEqualDoubleColumn.class,
+ DoubleScalarGreaterEqualLongColumn.class, DoubleScalarGreaterEqualDoubleColumn.class,
+ StringColGreaterEqualStringColumn.class, StringColGreaterEqualStringScalar.class,
+ StringScalarGreaterEqualStringColumn.class, FilterStringColGreaterEqualStringColumn.class,
+ FilterStringColGreaterEqualStringScalar.class, FilterStringScalarGreaterEqualStringColumn.class,
+ FilterLongColGreaterEqualLongColumn.class, FilterLongColGreaterEqualDoubleColumn.class,
+ FilterDoubleColGreaterEqualLongColumn.class, FilterDoubleColGreaterEqualDoubleColumn.class,
+ FilterLongColGreaterEqualLongScalar.class, FilterLongColGreaterEqualDoubleScalar.class,
+ FilterDoubleColGreaterEqualLongScalar.class, FilterDoubleColGreaterEqualDoubleScalar.class,
+ FilterLongScalarGreaterEqualLongColumn.class, FilterLongScalarGreaterEqualDoubleColumn.class,
+ FilterDoubleScalarGreaterEqualLongColumn.class, FilterDoubleScalarGreaterEqualDoubleColumn.class})
public class GenericUDFOPEqualOrGreaterThan extends GenericUDFBaseCompare {
public GenericUDFOPEqualOrGreaterThan(){
this.opName = "EQUAL OR GREATER THAN";
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqualOrLessThan.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqualOrLessThan.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqualOrLessThan.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqualOrLessThan.java Mon Oct 28 18:44:01 2013
@@ -19,6 +19,37 @@
package org.apache.hadoop.hive.ql.udf.generic;
import org.apache.hadoop.hive.ql.exec.Description;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColLessEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColLessEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColLessEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColLessEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleScalarLessEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleScalarLessEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColLessEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColLessEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColLessEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColLessEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleScalarLessEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleScalarLessEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColLessEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColLessEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColLessEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColLessEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongScalarLessEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongScalarLessEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringColLessEqualStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringColLessEqualStringScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringScalarLessEqualStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColLessEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColLessEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColLessEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColLessEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongScalarLessEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongScalarLessEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringColLessEqualStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringColLessEqualStringScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringScalarLessEqualStringColumn;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
import org.apache.hadoop.hive.shims.ShimLoader;
@@ -28,6 +59,21 @@ import org.apache.hadoop.io.Text;
* GenericUDF Class for operation EqualOrLessThan.
*/
@Description(name = "<=", value = "a _FUNC_ b - Returns TRUE if a is not greater than b")
+@VectorizedExpressions({LongColLessEqualLongColumn.class, LongColLessEqualDoubleColumn.class,
+ DoubleColLessEqualLongColumn.class, DoubleColLessEqualDoubleColumn.class,
+ LongColLessEqualLongScalar.class, LongColLessEqualDoubleScalar.class,
+ DoubleColLessEqualLongScalar.class, DoubleColLessEqualDoubleScalar.class,
+ LongScalarLessEqualLongColumn.class, LongScalarLessEqualDoubleColumn.class,
+ DoubleScalarLessEqualLongColumn.class, DoubleScalarLessEqualDoubleColumn.class,
+ StringColLessEqualStringColumn.class, StringColLessEqualStringScalar.class,
+ StringScalarLessEqualStringColumn.class, FilterStringColLessEqualStringColumn.class,
+ FilterStringColLessEqualStringScalar.class, FilterStringScalarLessEqualStringColumn.class,
+ FilterLongColLessEqualLongColumn.class, FilterLongColLessEqualDoubleColumn.class,
+ FilterDoubleColLessEqualLongColumn.class, FilterDoubleColLessEqualDoubleColumn.class,
+ FilterLongColLessEqualLongScalar.class, FilterLongColLessEqualDoubleScalar.class,
+ FilterDoubleColLessEqualLongScalar.class, FilterDoubleColLessEqualDoubleScalar.class,
+ FilterLongScalarLessEqualLongColumn.class, FilterLongScalarLessEqualDoubleColumn.class,
+ FilterDoubleScalarLessEqualLongColumn.class, FilterDoubleScalarLessEqualDoubleColumn.class})
public class GenericUDFOPEqualOrLessThan extends GenericUDFBaseCompare {
public GenericUDFOPEqualOrLessThan(){
this.opName = "EQUAL OR LESS THAN";
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPGreaterThan.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPGreaterThan.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPGreaterThan.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPGreaterThan.java Mon Oct 28 18:44:01 2013
@@ -19,6 +19,37 @@
package org.apache.hadoop.hive.ql.udf.generic;
import org.apache.hadoop.hive.ql.exec.Description;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColGreaterDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColGreaterDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColGreaterLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColGreaterLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleScalarGreaterDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleScalarGreaterLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColGreaterDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColGreaterDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColGreaterLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColGreaterLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleScalarGreaterDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleScalarGreaterLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColGreaterDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColGreaterDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColGreaterLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColGreaterLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongScalarGreaterDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongScalarGreaterLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringColGreaterStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringColGreaterStringScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringScalarGreaterStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColGreaterDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColGreaterDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColGreaterLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColGreaterLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongScalarGreaterDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongScalarGreaterLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringColGreaterStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringColGreaterStringScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringScalarGreaterStringColumn;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
import org.apache.hadoop.hive.shims.ShimLoader;
@@ -28,6 +59,21 @@ import org.apache.hadoop.io.Text;
* GenericUDF Class for operation GreaterThan.
*/
@Description(name = ">", value = "a _FUNC_ b - Returns TRUE if a is greater than b")
+@VectorizedExpressions({LongColGreaterLongColumn.class, LongColGreaterDoubleColumn.class,
+ DoubleColGreaterLongColumn.class, DoubleColGreaterDoubleColumn.class,
+ LongColGreaterLongScalar.class, LongColGreaterDoubleScalar.class,
+ DoubleColGreaterLongScalar.class, DoubleColGreaterDoubleScalar.class,
+ LongScalarGreaterLongColumn.class, LongScalarGreaterDoubleColumn.class,
+ DoubleScalarGreaterLongColumn.class, DoubleScalarGreaterDoubleColumn.class,
+ StringColGreaterStringColumn.class, StringColGreaterStringScalar.class,
+ StringScalarGreaterStringColumn.class, FilterStringColGreaterStringColumn.class,
+ FilterStringColGreaterStringScalar.class, FilterStringScalarGreaterStringColumn.class,
+ FilterLongColGreaterLongColumn.class, FilterLongColGreaterDoubleColumn.class,
+ FilterDoubleColGreaterLongColumn.class, FilterDoubleColGreaterDoubleColumn.class,
+ FilterLongColGreaterLongScalar.class, FilterLongColGreaterDoubleScalar.class,
+ FilterDoubleColGreaterLongScalar.class, FilterDoubleColGreaterDoubleScalar.class,
+ FilterLongScalarGreaterLongColumn.class, FilterLongScalarGreaterDoubleColumn.class,
+ FilterDoubleScalarGreaterLongColumn.class, FilterDoubleScalarGreaterDoubleColumn.class})
public class GenericUDFOPGreaterThan extends GenericUDFBaseCompare {
public GenericUDFOPGreaterThan(){
this.opName = "GREATER THAN";
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPLessThan.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPLessThan.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPLessThan.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPLessThan.java Mon Oct 28 18:44:01 2013
@@ -19,6 +19,8 @@
package org.apache.hadoop.hive.ql.udf.generic;
import org.apache.hadoop.hive.ql.exec.Description;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.*;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
import org.apache.hadoop.hive.shims.ShimLoader;
@@ -28,6 +30,21 @@ import org.apache.hadoop.io.Text;
* GenericUDF Class for operation LessThan.
*/
@Description(name = "<", value = "a _FUNC_ b - Returns TRUE if a is less than b")
+@VectorizedExpressions({LongColLessLongColumn.class, LongColLessDoubleColumn.class,
+ DoubleColLessLongColumn.class, DoubleColLessDoubleColumn.class,
+ LongColLessLongScalar.class, LongColLessDoubleScalar.class,
+ DoubleColLessLongScalar.class, DoubleColLessDoubleScalar.class,
+ LongScalarLessLongColumn.class, LongScalarLessDoubleColumn.class,
+ DoubleScalarLessLongColumn.class, DoubleScalarLessDoubleColumn.class,
+ StringColLessStringColumn.class, StringColLessStringScalar.class,
+ StringScalarLessStringColumn.class, FilterStringColLessStringColumn.class,
+ FilterStringColLessStringScalar.class, FilterStringScalarLessStringColumn.class,
+ FilterLongColLessLongColumn.class, FilterLongColLessDoubleColumn.class,
+ FilterDoubleColLessLongColumn.class, FilterDoubleColLessDoubleColumn.class,
+ FilterLongColLessLongScalar.class, FilterLongColLessDoubleScalar.class,
+ FilterDoubleColLessLongScalar.class, FilterDoubleColLessDoubleScalar.class,
+ FilterLongScalarLessLongColumn.class, FilterLongScalarLessDoubleColumn.class,
+ FilterDoubleScalarLessLongColumn.class, FilterDoubleScalarLessDoubleColumn.class})
public class GenericUDFOPLessThan extends GenericUDFBaseCompare {
public GenericUDFOPLessThan(){
this.opName = "LESS THAN";
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNot.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNot.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNot.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNot.java Mon Oct 28 18:44:01 2013
@@ -21,6 +21,9 @@ package org.apache.hadoop.hive.ql.udf.ge
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.NotCol;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.SelectColumnIsFalse;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspector;
@@ -32,6 +35,7 @@ import org.apache.hadoop.io.BooleanWrita
*
*/
@Description(name = "not", value = "_FUNC_ a - Logical not")
+@VectorizedExpressions({NotCol.class, SelectColumnIsFalse.class})
public class GenericUDFOPNot extends GenericUDF {
private final BooleanWritable result = new BooleanWritable();
private transient BooleanObjectInspector boi;
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java Mon Oct 28 18:44:01 2013
@@ -19,6 +19,37 @@
package org.apache.hadoop.hive.ql.udf.generic;
import org.apache.hadoop.hive.ql.exec.Description;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColNotEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColNotEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColNotEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleColNotEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleScalarNotEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.DoubleScalarNotEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColNotEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColNotEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColNotEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleColNotEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleScalarNotEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterDoubleScalarNotEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColNotEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColNotEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColNotEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongColNotEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongScalarNotEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterLongScalarNotEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringColNotEqualStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringColNotEqualStringScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.FilterStringScalarNotEqualStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColNotEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColNotEqualDoubleScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColNotEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongColNotEqualLongScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongScalarNotEqualDoubleColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.LongScalarNotEqualLongColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringColNotEqualStringColumn;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringColNotEqualStringScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.StringScalarNotEqualStringColumn;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
@@ -26,6 +57,21 @@ import org.apache.hadoop.hive.serde2.obj
* GenericUDF Class for operation Not EQUAL.
*/
@Description(name = "<>", value = "a _FUNC_ b - Returns TRUE if a is not equal to b")
+@VectorizedExpressions({LongColNotEqualLongColumn.class, LongColNotEqualDoubleColumn.class,
+ DoubleColNotEqualLongColumn.class, DoubleColNotEqualDoubleColumn.class,
+ LongColNotEqualLongScalar.class, LongColNotEqualDoubleScalar.class,
+ DoubleColNotEqualLongScalar.class, DoubleColNotEqualDoubleScalar.class,
+ LongScalarNotEqualLongColumn.class, LongScalarNotEqualDoubleColumn.class,
+ DoubleScalarNotEqualLongColumn.class, DoubleScalarNotEqualDoubleColumn.class,
+ StringColNotEqualStringColumn.class, StringColNotEqualStringScalar.class,
+ StringScalarNotEqualStringColumn.class, FilterStringColNotEqualStringColumn.class,
+ FilterStringColNotEqualStringScalar.class, FilterStringScalarNotEqualStringColumn.class,
+ FilterLongColNotEqualLongColumn.class, FilterLongColNotEqualDoubleColumn.class,
+ FilterDoubleColNotEqualLongColumn.class, FilterDoubleColNotEqualDoubleColumn.class,
+ FilterLongColNotEqualLongScalar.class, FilterLongColNotEqualDoubleScalar.class,
+ FilterDoubleColNotEqualLongScalar.class, FilterDoubleColNotEqualDoubleScalar.class,
+ FilterLongScalarNotEqualLongColumn.class, FilterLongScalarNotEqualDoubleColumn.class,
+ FilterDoubleScalarNotEqualLongColumn.class, FilterDoubleScalarNotEqualDoubleColumn.class})
public class GenericUDFOPNotEqual extends GenericUDFBaseCompare {
public GenericUDFOPNotEqual(){
this.opName = "NOT EQUAL";
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotNull.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotNull.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotNull.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotNull.java Mon Oct 28 18:44:01 2013
@@ -21,6 +21,9 @@ package org.apache.hadoop.hive.ql.udf.ge
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.IsNotNull;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.SelectColumnIsNotNull;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
@@ -32,8 +35,9 @@ import org.apache.hadoop.io.BooleanWrita
*/
@Description(name = "isnotnull",
value = "_FUNC_ a - Returns true if a is not NULL and false otherwise")
+@VectorizedExpressions({IsNotNull.class, SelectColumnIsNotNull.class})
public class GenericUDFOPNotNull extends GenericUDF {
- private BooleanWritable result = new BooleanWritable();
+ private final BooleanWritable result = new BooleanWritable();
@Override
public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException {
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNull.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNull.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNull.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNull.java Mon Oct 28 18:44:01 2013
@@ -21,6 +21,9 @@ package org.apache.hadoop.hive.ql.udf.ge
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.IsNull;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.SelectColumnIsNull;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
@@ -31,8 +34,9 @@ import org.apache.hadoop.io.BooleanWrita
*
*/
@Description(name = "isnull", value = "_FUNC_ a - Returns true if a is NULL and false otherwise")
+@VectorizedExpressions({IsNull.class, SelectColumnIsNull.class})
public class GenericUDFOPNull extends GenericUDF {
- private BooleanWritable result = new BooleanWritable();
+ private final BooleanWritable result = new BooleanWritable();
@Override
public ObjectInspector initialize(ObjectInspector[] arguments)
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java Mon Oct 28 18:44:01 2013
@@ -21,6 +21,11 @@ package org.apache.hadoop.hive.ql.udf.ge
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.ColOrCol;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.FilterColOrScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.FilterExprOrExpr;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.FilterScalarOrColumn;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspector;
@@ -31,6 +36,8 @@ import org.apache.hadoop.io.BooleanWrita
* GenericUDF Class for computing or.
*/
@Description(name = "or", value = "a _FUNC_ b - Logical or")
+@VectorizedExpressions({ColOrCol.class, FilterExprOrExpr.class, FilterColOrScalar.class,
+ FilterScalarOrColumn.class})
public class GenericUDFOPOr extends GenericUDF {
private final BooleanWritable result = new BooleanWritable();
private transient BooleanObjectInspector boi0,boi1;
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFSplit.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFSplit.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFSplit.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFSplit.java Mon Oct 28 18:44:01 2013
@@ -72,7 +72,7 @@ public class GenericUDFSplit extends Gen
ArrayList<Text> result = new ArrayList<Text>();
- for (String str : s.toString().split(regex.toString())) {
+ for (String str : s.toString().split(regex.toString(), -1)) {
result.add(new Text(str));
}
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFTimestamp.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFTimestamp.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFTimestamp.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFTimestamp.java Mon Oct 28 18:44:01 2013
@@ -19,6 +19,9 @@ package org.apache.hadoop.hive.ql.udf.ge
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastDoubleToTimestampViaDoubleToLong;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.CastLongToTimestampViaLongToLong;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
@@ -35,6 +38,8 @@ import org.apache.hadoop.hive.serde2.obj
* Creates a TimestampWritable object using PrimitiveObjectInspectorConverter
*
*/
+@VectorizedExpressions({CastLongToTimestampViaLongToLong.class,
+ CastDoubleToTimestampViaDoubleToLong.class})
public class GenericUDFTimestamp extends GenericUDF {
private transient PrimitiveObjectInspector argumentOI;
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToDecimal.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToDecimal.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToDecimal.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToDecimal.java Mon Oct 28 18:44:01 2013
@@ -21,17 +21,23 @@ import org.apache.hadoop.hive.ql.exec.De
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.udf.SettableUDF;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorConverter.HiveDecimalConverter;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
+import org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableHiveDecimalObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.DecimalTypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
@Description(name = "decimal", value = "_FUNC_(a) - cast a to decimal")
-public class GenericUDFToDecimal extends GenericUDF {
+public class GenericUDFToDecimal extends GenericUDF implements SettableUDF {
private transient PrimitiveObjectInspector argumentOI;
private transient HiveDecimalConverter bdConverter;
+ private DecimalTypeInfo typeInfo;
+
@Override
public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException {
if (arguments.length < 1) {
@@ -46,9 +52,13 @@ public class GenericUDFToDecimal extends
"The function DECIMAL takes only primitive types");
}
- bdConverter = new HiveDecimalConverter(argumentOI,
- PrimitiveObjectInspectorFactory.writableHiveDecimalObjectInspector);
- return PrimitiveObjectInspectorFactory.writableHiveDecimalObjectInspector;
+ // Check if this UDF has been provided with type params for the output varchar type
+ SettableHiveDecimalObjectInspector outputOI;
+ outputOI = (SettableHiveDecimalObjectInspector)
+ PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(typeInfo);
+
+ bdConverter = new HiveDecimalConverter(argumentOI, outputOI);
+ return outputOI;
}
@Override
@@ -67,8 +77,23 @@ public class GenericUDFToDecimal extends
StringBuilder sb = new StringBuilder();
sb.append("CAST( ");
sb.append(children[0]);
- sb.append(" AS DECIMAL)");
+ sb.append(" AS ");
+ sb.append(typeInfo.getQualifiedName());
+ sb.append(")");
return sb.toString();
}
+ public DecimalTypeInfo getTypeInfo() {
+ return typeInfo;
+ }
+
+ public void setTypeInfo(DecimalTypeInfo typeInfo) {
+ this.typeInfo = typeInfo;
+ }
+
+ @Override
+ public void setTypeInfo(TypeInfo typeInfo) throws UDFArgumentException {
+ this.typeInfo = (DecimalTypeInfo) typeInfo;
+ }
+
}
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToUnixTimeStamp.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToUnixTimeStamp.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToUnixTimeStamp.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToUnixTimeStamp.java Mon Oct 28 18:44:01 2013
@@ -26,6 +26,8 @@ import org.apache.commons.lang.StringUti
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorUDFUnixTimeStampLong;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.DateObjectInspector;
@@ -40,6 +42,7 @@ import org.apache.hadoop.io.LongWritable
@Description(name = "to_unix_timestamp",
value = "_FUNC_(date[, pattern]) - Returns the UNIX timestamp",
extended = "Converts the specified time to number of seconds since 1970-01-01.")
+@VectorizedExpressions({VectorUDFUnixTimeStampLong.class})
public class GenericUDFToUnixTimeStamp extends GenericUDF {
private transient StringObjectInspector intputTextOI;
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToVarchar.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToVarchar.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToVarchar.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToVarchar.java Mon Oct 28 18:44:01 2013
@@ -90,8 +90,8 @@ public class GenericUDFToVarchar extends
StringBuilder sb = new StringBuilder();
sb.append("CAST( ");
sb.append(children[0]);
- sb.append(" AS VARCHAR(");
- sb.append("" + typeInfo.getLength());
+ sb.append(" AS ");
+ sb.append(typeInfo.getQualifiedName());
sb.append(")");
return sb.toString();
}
Modified: hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFUpper.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFUpper.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFUpper.java (original)
+++ hive/branches/maven/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFUpper.java Mon Oct 28 18:44:01 2013
@@ -21,6 +21,8 @@ package org.apache.hadoop.hive.ql.udf.ge
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedExpressions;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.StringUpper;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
@@ -40,6 +42,7 @@ import org.apache.hadoop.hive.serde2.typ
value = "_FUNC_(str) - Returns str with all characters changed to uppercase",
extended = "Example:\n"
+ " > SELECT _FUNC_('Facebook') FROM src LIMIT 1;\n" + " 'FACEBOOK'")
+@VectorizedExpressions({StringUpper.class})
public class GenericUDFUpper extends GenericUDF {
private transient PrimitiveObjectInspector argumentOI;
private transient StringConverter stringConverter;
Modified: hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java (original)
+++ hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java Mon Oct 28 18:44:01 2013
@@ -1094,10 +1094,6 @@ public class QTestUtil {
in = new BufferedReader(new FileReader(fname));
out = new BufferedWriter(new FileWriter(fname + ".orig"));
while (null != (line = in.readLine())) {
- // Ignore the empty lines on windows
- if(line.isEmpty() && Shell.WINDOWS) {
- continue;
- }
out.write(line);
out.write('\n');
}
Modified: hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java (original)
+++ hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java Mon Oct 28 18:44:01 2013
@@ -208,7 +208,7 @@ public class TestFunctionRegistry extend
common(TypeInfoFactory.stringTypeInfo, TypeInfoFactory.decimalTypeInfo,
TypeInfoFactory.stringTypeInfo);
common(TypeInfoFactory.doubleTypeInfo, TypeInfoFactory.decimalTypeInfo,
- TypeInfoFactory.decimalTypeInfo);
+ TypeInfoFactory.getDecimalTypeInfo(65, 30));
common(TypeInfoFactory.doubleTypeInfo, TypeInfoFactory.stringTypeInfo,
TypeInfoFactory.stringTypeInfo);
@@ -226,7 +226,7 @@ public class TestFunctionRegistry extend
comparison(TypeInfoFactory.stringTypeInfo, TypeInfoFactory.decimalTypeInfo,
TypeInfoFactory.decimalTypeInfo);
comparison(TypeInfoFactory.doubleTypeInfo, TypeInfoFactory.decimalTypeInfo,
- TypeInfoFactory.decimalTypeInfo);
+ TypeInfoFactory.getDecimalTypeInfo(65, 30));
comparison(TypeInfoFactory.doubleTypeInfo, TypeInfoFactory.stringTypeInfo,
TypeInfoFactory.doubleTypeInfo);
@@ -296,7 +296,7 @@ public class TestFunctionRegistry extend
unionAll(TypeInfoFactory.stringTypeInfo, TypeInfoFactory.decimalTypeInfo,
TypeInfoFactory.decimalTypeInfo);
unionAll(TypeInfoFactory.doubleTypeInfo, TypeInfoFactory.decimalTypeInfo,
- TypeInfoFactory.decimalTypeInfo);
+ TypeInfoFactory.getDecimalTypeInfo(65, 30));
unionAll(TypeInfoFactory.doubleTypeInfo, TypeInfoFactory.stringTypeInfo,
TypeInfoFactory.stringTypeInfo);
Modified: hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorFilterOperator.java
URL: http://svn.apache.org/viewvc/hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorFilterOperator.java?rev=1536480&r1=1536479&r2=1536480&view=diff
==============================================================================
--- hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorFilterOperator.java (original)
+++ hive/branches/maven/ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorFilterOperator.java Mon Oct 28 18:44:01 2013
@@ -96,7 +96,8 @@ public class TestVectorFilterOperator {
VectorFilterOperator vfo = getAVectorFilterOperator();
VectorExpression ve1 = new FilterLongColGreaterLongColumn(0,1);
VectorExpression ve2 = new FilterLongColEqualDoubleScalar(2, 0);
- VectorExpression ve3 = new FilterExprAndExpr(ve1,ve2);
+ VectorExpression ve3 = new FilterExprAndExpr();
+ ve3.setChildExpressions(new VectorExpression[] {ve1, ve2});
vfo.setFilterCondition(ve3);
FakeDataReader fdr = new FakeDataReader(1024*1, 3);
@@ -123,7 +124,8 @@ public class TestVectorFilterOperator {
VectorFilterOperator vfo = getAVectorFilterOperator();
VectorExpression ve1 = new FilterLongColGreaterLongColumn(0,1);
VectorExpression ve2 = new FilterLongColEqualDoubleScalar(2, 0);
- VectorExpression ve3 = new FilterExprAndExpr(ve1,ve2);
+ VectorExpression ve3 = new FilterExprAndExpr();
+ ve3.setChildExpressions(new VectorExpression[] {ve1, ve2});
vfo.setFilterCondition(ve3);
FakeDataReader fdr = new FakeDataReader(16*1024*1024, 3);