You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by mm...@apache.org on 2017/10/29 20:40:17 UTC
[38/51] [partial] hive git commit: HIVE-17433: Vectorization: Support
Decimal64 in Hive Query Engine (Matt McCline, reviewed by Teddy Choi)
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateAddScalarCol.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateAddScalarCol.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateAddScalarCol.java
index f0a676d..d5bc603 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateAddScalarCol.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateAddScalarCol.java
@@ -21,7 +21,10 @@ package org.apache.hadoop.hive.ql.exec.vector.expressions;
import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.io.DateWritable;
+import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hive.common.util.DateParser;
import java.nio.charset.StandardCharsets;
@@ -32,23 +35,30 @@ import java.sql.Timestamp;
public class VectorUDFDateAddScalarCol extends VectorExpression {
private static final long serialVersionUID = 1L;
- private int colNum;
- private int outputColumn;
+ private final int colNum;
+
private long longValue = 0;
private Timestamp timestampValue = null;
private byte[] stringValue = null;
+
protected boolean isPositive = true;
+
private transient final DateParser dateParser = new DateParser();
private transient final Date baseDate = new Date(0);
+ // Transient members initialized by transientInit method.
+ private transient PrimitiveCategory primitiveCategory;
+
public VectorUDFDateAddScalarCol() {
super();
+
+ // Dummy final assignments.
+ colNum = -1;
}
- public VectorUDFDateAddScalarCol(Object object, int colNum, int outputColumn) {
- this();
+ public VectorUDFDateAddScalarCol(Object object, int colNum, int outputColumnNum) {
+ super(outputColumnNum);
this.colNum = colNum;
- this.outputColumn = outputColumn;
if (object instanceof Long) {
this.longValue = (Long) object;
@@ -62,6 +72,14 @@ public class VectorUDFDateAddScalarCol extends VectorExpression {
}
@Override
+ public void transientInit() throws HiveException {
+ super.transientInit();
+
+ primitiveCategory =
+ ((PrimitiveTypeInfo) inputTypeInfos[0]).getPrimitiveCategory();
+ }
+
+ @Override
public void evaluate(VectorizedRowBatch batch) {
if (childExpressions != null) {
@@ -73,9 +91,9 @@ public class VectorUDFDateAddScalarCol extends VectorExpression {
final int n = inputCol.isRepeating ? 1 : batch.size;
int[] sel = batch.selected;
final boolean selectedInUse = (inputCol.isRepeating == false) && batch.selectedInUse;
- LongColumnVector outV = (LongColumnVector) batch.cols[outputColumn];
+ LongColumnVector outV = (LongColumnVector) batch.cols[outputColumnNum];
- switch (inputTypes[0]) {
+ switch (primitiveCategory) {
case DATE:
baseDate.setTime(DateWritable.daysToMillis((int) longValue));
break;
@@ -104,7 +122,7 @@ public class VectorUDFDateAddScalarCol extends VectorExpression {
}
break;
default:
- throw new Error("Unsupported input type " + inputTypes[0].name());
+ throw new Error("Unsupported input type " + primitiveCategory.name());
}
if(batch.size == 0) {
@@ -161,28 +179,6 @@ public class VectorUDFDateAddScalarCol extends VectorExpression {
output.vector[i] = result;
}
- @Override
- public int getOutputColumn() {
- return this.outputColumn;
- }
-
- @Override
- public String getOutputType() {
- return "date";
- }
-
- public int getColNum() {
- return colNum;
- }
-
- public void setColNum(int colNum) {
- this.colNum = colNum;
- }
-
- public void setOutputColumn(int outputColumn) {
- this.outputColumn = outputColumn;
- }
-
public long getLongValue() {
return longValue;
}
@@ -209,7 +205,7 @@ public class VectorUDFDateAddScalarCol extends VectorExpression {
@Override
public String vectorExpressionParameters() {
- return "val " + stringValue + ", col " + colNum;
+ return "val " + stringValue + ", " + getColumnParamString(0, colNum);
}
public VectorExpressionDescriptor.Descriptor getDescriptor() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffColCol.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffColCol.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffColCol.java
index d3c5da2..95eb151 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffColCol.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffColCol.java
@@ -25,7 +25,11 @@ import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.TimestampColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.io.DateWritable;
+import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
import java.sql.Date;
import java.text.ParseException;
@@ -34,23 +38,36 @@ import java.text.SimpleDateFormat;
public class VectorUDFDateDiffColCol extends VectorExpression {
private static final long serialVersionUID = 1L;
- private int colNum1;
- private int colNum2;
- private int outputColumn;
- private transient SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
- private transient Date date = new Date(0);
- private transient LongColumnVector dateVector1 = new LongColumnVector();
- private transient LongColumnVector dateVector2 = new LongColumnVector();
+ private final int colNum1;
+ private final int colNum2;
- public VectorUDFDateDiffColCol(int colNum1, int colNum2, int outputColumn) {
- this();
+ private transient final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+ private transient final Date date = new Date(0);
+
+ // Transient members initialized by transientInit method.
+ private transient LongColumnVector dateVector1;
+ private transient LongColumnVector dateVector2;
+
+ public VectorUDFDateDiffColCol(int colNum1, int colNum2, int outputColumnNum) {
+ super(outputColumnNum);
this.colNum1 = colNum1;
this.colNum2 = colNum2;
- this.outputColumn = outputColumn;
}
public VectorUDFDateDiffColCol() {
super();
+
+ // Dummy final assignments.
+ colNum1 = -1;
+ colNum2 = -1;
+ }
+
+ @Override
+ public void transientInit() throws HiveException {
+ super.transientInit();
+
+ dateVector1 = new LongColumnVector();
+ dateVector2 = new LongColumnVector();
}
@Override
@@ -65,7 +82,7 @@ public class VectorUDFDateDiffColCol extends VectorExpression {
int[] sel = batch.selected;
int n = batch.size;
- LongColumnVector outV = (LongColumnVector) batch.cols[outputColumn];
+ LongColumnVector outV = (LongColumnVector) batch.cols[outputColumnNum];
long[] outputVector = outV.vector;
if (n <= 0) {
// Nothing to do
@@ -74,8 +91,8 @@ public class VectorUDFDateDiffColCol extends VectorExpression {
NullUtil.propagateNullsColCol(inputColVector1, inputColVector2, outV, batch.selected, batch.size, batch.selectedInUse);
- LongColumnVector convertedVector1 = toDateArray(batch, inputTypes[0], inputColVector1, dateVector1);
- LongColumnVector convertedVector2 = toDateArray(batch, inputTypes[1], inputColVector2, dateVector2);
+ LongColumnVector convertedVector1 = toDateArray(batch, inputTypeInfos[0], inputColVector1, dateVector1);
+ LongColumnVector convertedVector2 = toDateArray(batch, inputTypeInfos[1], inputColVector2, dateVector2);
// Now disregard null in second pass.
if ((inputColVector1.isRepeating) && (inputColVector2.isRepeating)) {
@@ -147,10 +164,12 @@ public class VectorUDFDateDiffColCol extends VectorExpression {
}
}
- private LongColumnVector toDateArray(VectorizedRowBatch batch, Type colType,
+ private LongColumnVector toDateArray(VectorizedRowBatch batch, TypeInfo typeInfo,
ColumnVector inputColVector, LongColumnVector dateVector) {
+ PrimitiveCategory primitiveCategory =
+ ((PrimitiveTypeInfo) typeInfo).getPrimitiveCategory();
int size = batch.size;
- if (colType == Type.DATE) {
+ if (primitiveCategory == PrimitiveCategory.DATE) {
return (LongColumnVector) inputColVector;
}
@@ -164,7 +183,7 @@ public class VectorUDFDateDiffColCol extends VectorExpression {
}
}
- switch (colType) {
+ switch (primitiveCategory) {
case TIMESTAMP:
TimestampColumnVector tcv = (TimestampColumnVector) inputColVector;
copySelected(tcv, batch.selectedInUse, batch.selected, batch.size, dateVector);
@@ -177,7 +196,7 @@ public class VectorUDFDateDiffColCol extends VectorExpression {
copySelected(bcv, batch.selectedInUse, batch.selected, batch.size, dateVector);
return dateVector;
default:
- throw new Error("Unsupported input type " + colType.name());
+ throw new Error("Unsupported input type " + primitiveCategory.name());
}
}
@@ -328,38 +347,8 @@ public class VectorUDFDateDiffColCol extends VectorExpression {
}
@Override
- public int getOutputColumn() {
- return this.outputColumn;
- }
-
- @Override
- public String getOutputType() {
- return "long";
- }
-
- public int getColNum1() {
- return colNum1;
- }
-
- public void setColNum1(int colNum1) {
- this.colNum1 = colNum1;
- }
-
- public int getColNum2() {
- return colNum2;
- }
-
- public void setColNum2(int colNum2) {
- this.colNum2 = colNum2;
- }
-
- public void setOutputColumn(int outputColumn) {
- this.outputColumn = outputColumn;
- }
-
- @Override
public String vectorExpressionParameters() {
- return "col " + colNum1 + ", col " + colNum2;
+ return getColumnParamString(0, colNum1) + ", " + getColumnParamString(1, colNum2);
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffColScalar.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffColScalar.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffColScalar.java
index 1253f2f..44027a2 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffColScalar.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffColScalar.java
@@ -26,6 +26,8 @@ import org.apache.hadoop.hive.ql.exec.vector.TimestampColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.hadoop.hive.serde2.io.DateWritable;
+import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hadoop.io.Text;
import java.nio.charset.StandardCharsets;
@@ -37,20 +39,21 @@ import java.text.SimpleDateFormat;
public class VectorUDFDateDiffColScalar extends VectorExpression {
private static final long serialVersionUID = 1L;
- private int colNum;
- private int outputColumn;
+ private final int colNum;
+
private long longValue;
private Timestamp timestampValue;
private byte[] bytesValue;
- private transient SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+
+ private transient final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
private transient final Text text = new Text();
+ private transient final Date date = new Date(0);
+
private int baseDate;
- private transient Date date = new Date(0);
- public VectorUDFDateDiffColScalar(int colNum, Object object, int outputColumn) {
- super();
+ public VectorUDFDateDiffColScalar(int colNum, Object object, int outputColumnNum) {
+ super(outputColumnNum);
this.colNum = colNum;
- this.outputColumn = outputColumn;
if (object instanceof Long) {
this.longValue = (Long) object;
@@ -65,6 +68,9 @@ public class VectorUDFDateDiffColScalar extends VectorExpression {
public VectorUDFDateDiffColScalar() {
super();
+
+ // Dummy final assignments.
+ colNum = -1;
}
@Override
@@ -74,7 +80,7 @@ public class VectorUDFDateDiffColScalar extends VectorExpression {
super.evaluateChildren(batch);
}
- LongColumnVector outV = (LongColumnVector) batch.cols[outputColumn];
+ LongColumnVector outV = (LongColumnVector) batch.cols[outputColumnNum];
ColumnVector inputCol = batch.cols[this.colNum];
/* every line below this is identical for evaluateLong & evaluateString */
final int n = inputCol.isRepeating ? 1 : batch.size;
@@ -89,7 +95,8 @@ public class VectorUDFDateDiffColScalar extends VectorExpression {
/* true for all algebraic UDFs with no state */
outV.isRepeating = inputCol.isRepeating;
- switch (inputTypes[1]) {
+ PrimitiveCategory primitiveCategory1 = ((PrimitiveTypeInfo) inputTypeInfos[1]).getPrimitiveCategory();
+ switch (primitiveCategory1) {
case DATE:
baseDate = (int) longValue;
break;
@@ -121,10 +128,11 @@ public class VectorUDFDateDiffColScalar extends VectorExpression {
return;
}
default:
- throw new Error("Invalid input type #1: " + inputTypes[1].name());
+ throw new Error("Invalid input type #1: " + primitiveCategory1.name());
}
- switch (inputTypes[0]) {
+ PrimitiveCategory primitiveCategory0 = ((PrimitiveTypeInfo) inputTypeInfos[0]).getPrimitiveCategory();
+ switch (primitiveCategory0) {
case DATE:
if (inputCol.noNulls) {
outV.noNulls = true;
@@ -235,7 +243,7 @@ public class VectorUDFDateDiffColScalar extends VectorExpression {
}
break;
default:
- throw new Error("Invalid input type #0: " + inputTypes[0].name());
+ throw new Error("Invalid input type #0: " + primitiveCategory0.name());
}
}
@@ -261,27 +269,6 @@ public class VectorUDFDateDiffColScalar extends VectorExpression {
output.isNull[i] = true;
}
}
- @Override
- public int getOutputColumn() {
- return this.outputColumn;
- }
-
- @Override
- public String getOutputType() {
- return "long";
- }
-
- public int getColNum() {
- return colNum;
- }
-
- public void setColNum(int colNum) {
- this.colNum = colNum;
- }
-
- public void setOutputColumn(int outputColumn) {
- this.outputColumn = outputColumn;
- }
public long getLongValue() {
return longValue;
@@ -301,7 +288,7 @@ public class VectorUDFDateDiffColScalar extends VectorExpression {
@Override
public String vectorExpressionParameters() {
- return "col " + colNum + ", val " + displayUtf8Bytes(bytesValue);
+ return getColumnParamString(0, colNum) + ", val " + displayUtf8Bytes(bytesValue);
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffScalarCol.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffScalarCol.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffScalarCol.java
index d5ee1eb..d280e4c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffScalarCol.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffScalarCol.java
@@ -25,6 +25,8 @@ import org.apache.hadoop.hive.ql.exec.vector.TimestampColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.hadoop.hive.serde2.io.DateWritable;
+import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hadoop.io.Text;
import java.sql.Date;
@@ -35,20 +37,21 @@ import java.text.SimpleDateFormat;
public class VectorUDFDateDiffScalarCol extends VectorExpression {
private static final long serialVersionUID = 1L;
- private int colNum;
- private int outputColumn;
+ private final int colNum;
+
private long longValue;
private Timestamp timestampValue = null;
private byte[] stringValue;
- private transient SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+
+ private transient final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
private transient final Text text = new Text();
+ private transient final Date date = new Date(0);
+
private int baseDate;
- private transient Date date = new Date(0);
- public VectorUDFDateDiffScalarCol(Object object, int colNum, int outputColumn) {
- super();
+ public VectorUDFDateDiffScalarCol(Object object, int colNum, int outputColumnNum) {
+ super(outputColumnNum);
this.colNum = colNum;
- this.outputColumn = outputColumn;
if (object instanceof Long) {
this.longValue = (Long) object;
@@ -63,6 +66,9 @@ public class VectorUDFDateDiffScalarCol extends VectorExpression {
public VectorUDFDateDiffScalarCol() {
super();
+
+ // Dummy final assignments.
+ colNum = -1;
}
@Override
@@ -72,7 +78,7 @@ public class VectorUDFDateDiffScalarCol extends VectorExpression {
super.evaluateChildren(batch);
}
- LongColumnVector outV = (LongColumnVector) batch.cols[outputColumn];
+ LongColumnVector outV = (LongColumnVector) batch.cols[outputColumnNum];
ColumnVector inputCol = batch.cols[this.colNum];
/* every line below this is identical for evaluateLong & evaluateString */
final int n = inputCol.isRepeating ? 1 : batch.size;
@@ -87,7 +93,9 @@ public class VectorUDFDateDiffScalarCol extends VectorExpression {
/* true for all algebraic UDFs with no state */
outV.isRepeating = inputCol.isRepeating;
- switch (inputTypes[0]) {
+ PrimitiveCategory primitiveCategory0 =
+ ((PrimitiveTypeInfo) inputTypeInfos[0]).getPrimitiveCategory();
+ switch (primitiveCategory0) {
case DATE:
baseDate = (int) longValue;
break;
@@ -119,10 +127,12 @@ public class VectorUDFDateDiffScalarCol extends VectorExpression {
return;
}
default:
- throw new Error("Unsupported input type " + inputTypes[0].name());
+ throw new Error("Unsupported input type " + primitiveCategory0.name());
}
- switch (inputTypes[1]) {
+ PrimitiveCategory primitiveCategory1 =
+ ((PrimitiveTypeInfo) inputTypeInfos[1]).getPrimitiveCategory();
+ switch (primitiveCategory1) {
case DATE:
if (inputCol.noNulls) {
outV.noNulls = true;
@@ -233,7 +243,7 @@ public class VectorUDFDateDiffScalarCol extends VectorExpression {
}
break;
default:
- throw new Error("Unsupported input type " + inputTypes[1].name());
+ throw new Error("Unsupported input type " + primitiveCategory1.name());
}
}
@@ -259,47 +269,10 @@ public class VectorUDFDateDiffScalarCol extends VectorExpression {
output.isNull[i] = true;
}
}
- @Override
- public int getOutputColumn() {
- return this.outputColumn;
- }
-
- @Override
- public String getOutputType() {
- return "long";
- }
-
- public int getColNum() {
- return colNum;
- }
-
- public void setColNum(int colNum) {
- this.colNum = colNum;
- }
-
- public void setOutputColumn(int outputColumn) {
- this.outputColumn = outputColumn;
- }
-
- public long getLongValue() {
- return longValue;
- }
-
- public void setLongValue(int longValue) {
- this.longValue = longValue;
- }
-
- public byte[] getStringValue() {
- return stringValue;
- }
-
- public void setStringValue(byte[] stringValue) {
- this.stringValue = stringValue;
- }
@Override
public String vectorExpressionParameters() {
- return "val " + stringValue + ", col " + colNum;
+ return "val " + stringValue + ", " + getColumnParamString(1, colNum);
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateLong.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateLong.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateLong.java
index 3fd2e9c..5379a25 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateLong.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateLong.java
@@ -37,7 +37,7 @@ public class VectorUDFDateLong extends CastLongToDate {
super();
}
- public VectorUDFDateLong(int inputColumn, int outputColumn) {
- super(inputColumn, outputColumn);
+ public VectorUDFDateLong(int inputColumn, int outputColumnNum) {
+ super(inputColumn, outputColumnNum);
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateString.java
index 7ae03d5..a74e295 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateString.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateString.java
@@ -40,7 +40,7 @@ public class VectorUDFDateString extends CastStringToDate {
}
- public VectorUDFDateString(int inputColumn, int outputColumn) {
- super(inputColumn, outputColumn);
+ public VectorUDFDateString(int inputColumn, int outputColumnNum) {
+ super(inputColumn, outputColumnNum);
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubColCol.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubColCol.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubColCol.java
index 994d416..b0cd8ba 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubColCol.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubColCol.java
@@ -22,13 +22,12 @@ package org.apache.hadoop.hive.ql.exec.vector.expressions;
* Returns the date that is num_days before start_date.
*/
public class VectorUDFDateSubColCol extends VectorUDFDateAddColCol {
- public VectorUDFDateSubColCol(int colNum1, int colNum2, int outputColumn) {
- super(colNum1, colNum2, outputColumn);
+ public VectorUDFDateSubColCol(int colNum1, int colNum2, int outputColumnNum) {
+ super(colNum1, colNum2, outputColumnNum);
isPositive = false;
}
public VectorUDFDateSubColCol() {
super();
- isPositive = false;
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubColScalar.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubColScalar.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubColScalar.java
index e952f5f..a5237a0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubColScalar.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubColScalar.java
@@ -22,13 +22,12 @@ package org.apache.hadoop.hive.ql.exec.vector.expressions;
* Returns the date that is num_days before start_date.
*/
public class VectorUDFDateSubColScalar extends VectorUDFDateAddColScalar {
- public VectorUDFDateSubColScalar(int colNum, long numDays, int outputColumn) {
- super(colNum, numDays, outputColumn);
+ public VectorUDFDateSubColScalar(int colNum, long numDays, int outputColumnNum) {
+ super(colNum, numDays, outputColumnNum);
isPositive = false;
}
public VectorUDFDateSubColScalar() {
super();
- isPositive = false;
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubScalarCol.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubScalarCol.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubScalarCol.java
index eccbb21..d8183e7 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubScalarCol.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubScalarCol.java
@@ -19,13 +19,12 @@
package org.apache.hadoop.hive.ql.exec.vector.expressions;
public class VectorUDFDateSubScalarCol extends VectorUDFDateAddScalarCol {
- public VectorUDFDateSubScalarCol(Object object, int colNum, int outputColumn) {
- super(object, colNum, outputColumn);
+ public VectorUDFDateSubScalarCol(Object object, int colNum, int outputColumnNum) {
+ super(object, colNum, outputColumnNum);
isPositive = false;
}
public VectorUDFDateSubScalarCol() {
super();
- isPositive = false;
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateTimestamp.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateTimestamp.java
index f0158dc..12f5115 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateTimestamp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateTimestamp.java
@@ -38,7 +38,7 @@ public class VectorUDFDateTimestamp extends CastTimestampToDate {
super();
}
- public VectorUDFDateTimestamp(int inputColumn, int outputColumn) {
- super(inputColumn, outputColumn);
+ public VectorUDFDateTimestamp(int inputColumn, int outputColumnNum) {
+ super(inputColumn, outputColumnNum);
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthDate.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthDate.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthDate.java
index 8addb20..d4f8617 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthDate.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthDate.java
@@ -28,8 +28,8 @@ public final class VectorUDFDayOfMonthDate extends VectorUDFTimestampFieldDate {
private static final long serialVersionUID = 1L;
- public VectorUDFDayOfMonthDate(int colNum, int outputColumn) {
- super(Calendar.DAY_OF_MONTH, colNum, outputColumn);
+ public VectorUDFDayOfMonthDate(int colNum, int outputColumnNum) {
+ super(Calendar.DAY_OF_MONTH, colNum, outputColumnNum);
}
public VectorUDFDayOfMonthDate() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthString.java
index 43110c5..3af5930 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthString.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthString.java
@@ -26,8 +26,8 @@ public final class VectorUDFDayOfMonthString extends VectorUDFTimestampFieldStri
private static final long serialVersionUID = 1L;
- public VectorUDFDayOfMonthString(int colNum, int outputColumn) {
- super(colNum, outputColumn, 8, 2);
+ public VectorUDFDayOfMonthString(int colNum, int outputColumnNum) {
+ super(colNum, outputColumnNum, 8, 2);
}
public VectorUDFDayOfMonthString() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthTimestamp.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthTimestamp.java
index 4df48ee..314aec5 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthTimestamp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthTimestamp.java
@@ -28,8 +28,8 @@ public final class VectorUDFDayOfMonthTimestamp extends VectorUDFTimestampFieldT
private static final long serialVersionUID = 1L;
- public VectorUDFDayOfMonthTimestamp(int colNum, int outputColumn) {
- super(Calendar.DAY_OF_MONTH, colNum, outputColumn);
+ public VectorUDFDayOfMonthTimestamp(int colNum, int outputColumnNum) {
+ super(Calendar.DAY_OF_MONTH, colNum, outputColumnNum);
}
public VectorUDFDayOfMonthTimestamp() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekDate.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekDate.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekDate.java
index bd9c480..1d6a9fc 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekDate.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekDate.java
@@ -28,8 +28,8 @@ public final class VectorUDFDayOfWeekDate extends VectorUDFTimestampFieldDate {
private static final long serialVersionUID = 1L;
- public VectorUDFDayOfWeekDate(int colNum, int outputColumn) {
- super(Calendar.DAY_OF_WEEK, colNum, outputColumn);
+ public VectorUDFDayOfWeekDate(int colNum, int outputColumnNum) {
+ super(Calendar.DAY_OF_WEEK, colNum, outputColumnNum);
}
public VectorUDFDayOfWeekDate() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekString.java
index 069d888..9c1d6b8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekString.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekString.java
@@ -37,8 +37,8 @@ public final class VectorUDFDayOfWeekString extends VectorUDFTimestampFieldStrin
private transient final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
private transient final Calendar calendar = Calendar.getInstance();
- public VectorUDFDayOfWeekString(int colNum, int outputColumn) {
- super(colNum, outputColumn, -1, -1);
+ public VectorUDFDayOfWeekString(int colNum, int outputColumnNum) {
+ super(colNum, outputColumnNum, -1, -1);
}
public VectorUDFDayOfWeekString() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekTimestamp.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekTimestamp.java
index 8e7c180..46e471f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekTimestamp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekTimestamp.java
@@ -28,8 +28,8 @@ public final class VectorUDFDayOfWeekTimestamp extends VectorUDFTimestampFieldTi
private static final long serialVersionUID = 1L;
- public VectorUDFDayOfWeekTimestamp(int colNum, int outputColumn) {
- super(Calendar.DAY_OF_WEEK, colNum, outputColumn);
+ public VectorUDFDayOfWeekTimestamp(int colNum, int outputColumnNum) {
+ super(Calendar.DAY_OF_WEEK, colNum, outputColumnNum);
}
public VectorUDFDayOfWeekTimestamp() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourDate.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourDate.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourDate.java
index 0e33e25..23b7522 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourDate.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourDate.java
@@ -28,8 +28,8 @@ public final class VectorUDFHourDate extends VectorUDFTimestampFieldDate {
private static final long serialVersionUID = 1L;
- public VectorUDFHourDate(int colNum, int outputColumn) {
- super(Calendar.HOUR_OF_DAY, colNum, outputColumn);
+ public VectorUDFHourDate(int colNum, int outputColumnNum) {
+ super(Calendar.HOUR_OF_DAY, colNum, outputColumnNum);
}
public VectorUDFHourDate() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourString.java
index 066d548..4c8a1ab 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourString.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourString.java
@@ -26,8 +26,8 @@ public final class VectorUDFHourString extends VectorUDFTimestampFieldString {
private static final long serialVersionUID = 1L;
- public VectorUDFHourString(int colNum, int outputColumn) {
- super(colNum, outputColumn, 11, 2);
+ public VectorUDFHourString(int colNum, int outputColumnNum) {
+ super(colNum, outputColumnNum, 11, 2);
}
public VectorUDFHourString() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourTimestamp.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourTimestamp.java
index 93961bc..ce14450 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourTimestamp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourTimestamp.java
@@ -28,8 +28,8 @@ public final class VectorUDFHourTimestamp extends VectorUDFTimestampFieldTimesta
private static final long serialVersionUID = 1L;
- public VectorUDFHourTimestamp(int colNum, int outputColumn) {
- super(Calendar.HOUR_OF_DAY, colNum, outputColumn);
+ public VectorUDFHourTimestamp(int colNum, int outputColumnNum) {
+ super(Calendar.HOUR_OF_DAY, colNum, outputColumnNum);
}
public VectorUDFHourTimestamp() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteDate.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteDate.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteDate.java
index 98182ae..285ade0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteDate.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteDate.java
@@ -28,8 +28,8 @@ public final class VectorUDFMinuteDate extends VectorUDFTimestampFieldDate {
private static final long serialVersionUID = 1L;
- public VectorUDFMinuteDate(int colNum, int outputColumn) {
- super(Calendar.MINUTE, colNum, outputColumn);
+ public VectorUDFMinuteDate(int colNum, int outputColumnNum) {
+ super(Calendar.MINUTE, colNum, outputColumnNum);
}
public VectorUDFMinuteDate() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteString.java
index 3324c3f..5b66bbb 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteString.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteString.java
@@ -26,8 +26,8 @@ public final class VectorUDFMinuteString extends VectorUDFTimestampFieldString {
private static final long serialVersionUID = 1L;
- public VectorUDFMinuteString(int colNum, int outputColumn) {
- super(colNum, outputColumn, 14, 2);
+ public VectorUDFMinuteString(int colNum, int outputColumnNum) {
+ super(colNum, outputColumnNum, 14, 2);
}
public VectorUDFMinuteString() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteTimestamp.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteTimestamp.java
index 7e4a262..ec8f53b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteTimestamp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteTimestamp.java
@@ -28,8 +28,8 @@ public final class VectorUDFMinuteTimestamp extends VectorUDFTimestampFieldTimes
private static final long serialVersionUID = 1L;
- public VectorUDFMinuteTimestamp(int colNum, int outputColumn) {
- super(Calendar.MINUTE, colNum, outputColumn);
+ public VectorUDFMinuteTimestamp(int colNum, int outputColumnNum) {
+ super(Calendar.MINUTE, colNum, outputColumnNum);
}
public VectorUDFMinuteTimestamp() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthDate.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthDate.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthDate.java
index aac8ab7..f220711 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthDate.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthDate.java
@@ -28,8 +28,8 @@ public final class VectorUDFMonthDate extends VectorUDFTimestampFieldDate {
private static final long serialVersionUID = 1L;
- public VectorUDFMonthDate(int colNum, int outputColumn) {
- super(Calendar.MONTH, colNum, outputColumn);
+ public VectorUDFMonthDate(int colNum, int outputColumnNum) {
+ super(Calendar.MONTH, colNum, outputColumnNum);
}
public VectorUDFMonthDate() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthString.java
index c2d3392..b2f29d3 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthString.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthString.java
@@ -26,8 +26,8 @@ public final class VectorUDFMonthString extends VectorUDFTimestampFieldString {
private static final long serialVersionUID = 1L;
- public VectorUDFMonthString(int colNum, int outputColumn) {
- super(colNum, outputColumn, 5, 2);
+ public VectorUDFMonthString(int colNum, int outputColumnNum) {
+ super(colNum, outputColumnNum, 5, 2);
}
public VectorUDFMonthString() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthTimestamp.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthTimestamp.java
index e966636..0078255 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthTimestamp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthTimestamp.java
@@ -30,8 +30,8 @@ public final class VectorUDFMonthTimestamp extends VectorUDFTimestampFieldTimest
private static final long serialVersionUID = 1L;
- public VectorUDFMonthTimestamp(int colNum, int outputColumn) {
- super(Calendar.MONTH, colNum, outputColumn);
+ public VectorUDFMonthTimestamp(int colNum, int outputColumnNum) {
+ super(Calendar.MONTH, colNum, outputColumnNum);
}
public VectorUDFMonthTimestamp() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondDate.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondDate.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondDate.java
index fbae390..c88f86f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondDate.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondDate.java
@@ -28,8 +28,8 @@ public final class VectorUDFSecondDate extends VectorUDFTimestampFieldDate {
private static final long serialVersionUID = 1L;
- public VectorUDFSecondDate(int colNum, int outputColumn) {
- super(Calendar.SECOND, colNum, outputColumn);
+ public VectorUDFSecondDate(int colNum, int outputColumnNum) {
+ super(Calendar.SECOND, colNum, outputColumnNum);
}
public VectorUDFSecondDate() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondString.java
index b6617ba..b1b35c9 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondString.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondString.java
@@ -26,8 +26,8 @@ public final class VectorUDFSecondString extends VectorUDFTimestampFieldString {
private static final long serialVersionUID = 1L;
- public VectorUDFSecondString(int colNum, int outputColumn) {
- super(colNum, outputColumn, 17, 2);
+ public VectorUDFSecondString(int colNum, int outputColumnNum) {
+ super(colNum, outputColumnNum, 17, 2);
}
public VectorUDFSecondString() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondTimestamp.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondTimestamp.java
index 97842f0..20d7c77 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondTimestamp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondTimestamp.java
@@ -28,8 +28,8 @@ public final class VectorUDFSecondTimestamp extends VectorUDFTimestampFieldTimes
private static final long serialVersionUID = 1L;
- public VectorUDFSecondTimestamp(int colNum, int outputColumn) {
- super(Calendar.SECOND, colNum, outputColumn);
+ public VectorUDFSecondTimestamp(int colNum, int outputColumnNum) {
+ super(Calendar.SECOND, colNum, outputColumnNum);
}
public VectorUDFSecondTimestamp() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldDate.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldDate.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldDate.java
index 0255cfa..83b8441 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldDate.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldDate.java
@@ -24,7 +24,10 @@ import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.serde2.io.DateWritable;
+import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hive.common.util.DateUtils;
import com.google.common.base.Preconditions;
@@ -34,23 +37,34 @@ import com.google.common.base.Preconditions;
* Abstract class to return various fields from a Timestamp or Date.
*/
public abstract class VectorUDFTimestampFieldDate extends VectorExpression {
-
private static final long serialVersionUID = 1L;
- protected int colNum;
- protected int outputColumn;
- protected int field;
+ protected final int colNum;
+ protected final int field;
+
protected transient final Calendar calendar = Calendar.getInstance();
- public VectorUDFTimestampFieldDate(int field, int colNum, int outputColumn) {
- this();
+ public VectorUDFTimestampFieldDate(int field, int colNum, int outputColumnNum) {
+ super(outputColumnNum);
this.colNum = colNum;
- this.outputColumn = outputColumn;
this.field = field;
}
public VectorUDFTimestampFieldDate() {
super();
+
+ // Dummy final assignments.
+ colNum = -1;
+ field = -1;
+ }
+
+ public void initCalendar() {
+ }
+
+ @Override
+ public void transientInit() throws HiveException {
+ super.transientInit();
+ initCalendar();
}
protected long getDateField(long days) {
@@ -61,13 +75,14 @@ public abstract class VectorUDFTimestampFieldDate extends VectorExpression {
@Override
public void evaluate(VectorizedRowBatch batch) {
- Preconditions.checkState(inputTypes[0] == VectorExpression.Type.DATE);
+ Preconditions.checkState(
+ ((PrimitiveTypeInfo) inputTypeInfos[0]).getPrimitiveCategory() == PrimitiveCategory.DATE);
if (childExpressions != null) {
super.evaluateChildren(batch);
}
- LongColumnVector outV = (LongColumnVector) batch.cols[outputColumn];
+ LongColumnVector outV = (LongColumnVector) batch.cols[outputColumnNum];
ColumnVector inputColVec = batch.cols[this.colNum];
/* every line below this is identical for evaluateLong & evaluateString */
@@ -121,36 +136,6 @@ public abstract class VectorUDFTimestampFieldDate extends VectorExpression {
}
@Override
- public int getOutputColumn() {
- return this.outputColumn;
- }
-
- @Override
- public String getOutputType() {
- return "long";
- }
-
- public int getColNum() {
- return colNum;
- }
-
- public void setColNum(int colNum) {
- this.colNum = colNum;
- }
-
- public int getField() {
- return field;
- }
-
- public void setField(int field) {
- this.field = field;
- }
-
- public void setOutputColumn(int outputColumn) {
- this.outputColumn = outputColumn;
- }
-
- @Override
public String vectorExpressionParameters() {
if (field == -1) {
return "col " + colNum;
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldString.java
index 6719ce3..9a6326d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldString.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldString.java
@@ -22,8 +22,10 @@ import org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
import java.text.ParseException;
+import java.util.Calendar;
/**
* Abstract class to return various fields from a String.
@@ -33,15 +35,15 @@ public abstract class VectorUDFTimestampFieldString extends VectorExpression {
private static final long serialVersionUID = 1L;
protected int colNum;
- protected int outputColumn;
protected final int fieldStart;
protected final int fieldLength;
private static final String patternMin = "0000-00-00 00:00:00.000000000";
private static final String patternMax = "9999-19-99 29:59:59.999999999";
+ protected transient final Calendar calendar = Calendar.getInstance();
- public VectorUDFTimestampFieldString(int colNum, int outputColumn, int fieldStart, int fieldLength) {
+ public VectorUDFTimestampFieldString(int colNum, int outputColumnNum, int fieldStart, int fieldLength) {
+ super(outputColumnNum);
this.colNum = colNum;
- this.outputColumn = outputColumn;
this.fieldStart = fieldStart;
this.fieldLength = fieldLength;
}
@@ -51,6 +53,15 @@ public abstract class VectorUDFTimestampFieldString extends VectorExpression {
fieldLength = -1;
}
+ public void initCalendar() {
+ }
+
+ @Override
+ public void transientInit() throws HiveException {
+ super.transientInit();
+ initCalendar();
+ }
+
private long getField(byte[] bytes, int start, int length) throws ParseException {
// Validate
for (int i = 0; i < length; i++) {
@@ -82,7 +93,7 @@ public abstract class VectorUDFTimestampFieldString extends VectorExpression {
super.evaluateChildren(batch);
}
- LongColumnVector outV = (LongColumnVector) batch.cols[outputColumn];
+ LongColumnVector outV = (LongColumnVector) batch.cols[outputColumnNum];
BytesColumnVector inputCol = (BytesColumnVector)batch.cols[this.colNum];
final int n = inputCol.isRepeating ? 1 : batch.size;
@@ -155,33 +166,11 @@ public abstract class VectorUDFTimestampFieldString extends VectorExpression {
}
@Override
- public int getOutputColumn() {
- return this.outputColumn;
- }
-
- @Override
- public String getOutputType() {
- return "long";
- }
-
- public int getColNum() {
- return colNum;
- }
-
- public void setColNum(int colNum) {
- this.colNum = colNum;
- }
-
- public void setOutputColumn(int outputColumn) {
- this.outputColumn = outputColumn;
- }
-
- @Override
public String vectorExpressionParameters() {
if (fieldStart == -1) {
- return "col " + colNum;
+ return getColumnParamString(0, colNum);
} else {
- return "col " + colNum + ", fieldStart " + fieldStart + ", fieldLength " + fieldLength;
+ return getColumnParamString(0, colNum) + ", fieldStart " + fieldStart + ", fieldLength " + fieldLength;
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldTimestamp.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldTimestamp.java
index e9000c6..c3a61d5 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldTimestamp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldTimestamp.java
@@ -25,6 +25,9 @@ import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.TimestampColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
+import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
import org.apache.hive.common.util.DateUtils;
import com.google.common.base.Preconditions;
@@ -36,20 +39,32 @@ public abstract class VectorUDFTimestampFieldTimestamp extends VectorExpression
private static final long serialVersionUID = 1L;
- protected int colNum;
- protected int outputColumn;
- protected int field;
+ protected final int colNum;
+ protected final int field;
+
protected transient final Calendar calendar = Calendar.getInstance();
- public VectorUDFTimestampFieldTimestamp(int field, int colNum, int outputColumn) {
- this();
+ public VectorUDFTimestampFieldTimestamp(int field, int colNum, int outputColumnNum) {
+ super(outputColumnNum);
this.colNum = colNum;
- this.outputColumn = outputColumn;
this.field = field;
}
public VectorUDFTimestampFieldTimestamp() {
super();
+
+ // Dummy final assignments.
+ colNum = -1;
+ field = -1;
+ }
+
+ public void initCalendar() {
+ }
+
+ @Override
+ public void transientInit() throws HiveException {
+ super.transientInit();
+ initCalendar();
}
protected long getTimestampField(TimestampColumnVector timestampColVector, int elementNum) {
@@ -60,13 +75,14 @@ public abstract class VectorUDFTimestampFieldTimestamp extends VectorExpression
@Override
public void evaluate(VectorizedRowBatch batch) {
- Preconditions.checkState(inputTypes[0] == VectorExpression.Type.TIMESTAMP);
+ Preconditions.checkState(
+ ((PrimitiveTypeInfo) inputTypeInfos[0]).getPrimitiveCategory() == PrimitiveCategory.TIMESTAMP);
if (childExpressions != null) {
super.evaluateChildren(batch);
}
- LongColumnVector outV = (LongColumnVector) batch.cols[outputColumn];
+ LongColumnVector outV = (LongColumnVector) batch.cols[outputColumnNum];
ColumnVector inputColVec = batch.cols[this.colNum];
/* every line below this is identical for evaluateLong & evaluateString */
@@ -119,41 +135,11 @@ public abstract class VectorUDFTimestampFieldTimestamp extends VectorExpression
}
}
- @Override
- public int getOutputColumn() {
- return this.outputColumn;
- }
-
- @Override
- public String getOutputType() {
- return "long";
- }
-
- public int getColNum() {
- return colNum;
- }
-
- public void setColNum(int colNum) {
- this.colNum = colNum;
- }
-
- public int getField() {
- return field;
- }
-
- public void setField(int field) {
- this.field = field;
- }
-
- public void setOutputColumn(int outputColumn) {
- this.outputColumn = outputColumn;
- }
-
public String vectorExpressionParameters() {
if (field == -1) {
- return "col " + colNum;
+ return getColumnParamString(0, colNum);
} else {
- return "col " + colNum + ", field " + DateUtils.getFieldName(field);
+ return getColumnParamString(0, colNum) + ", field " + DateUtils.getFieldName(field);
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampDate.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampDate.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampDate.java
index 3c693af..b348bc7 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampDate.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampDate.java
@@ -36,9 +36,9 @@ public final class VectorUDFUnixTimeStampDate extends VectorUDFTimestampFieldDat
return dateWritable.getTimeInSeconds();
}
- public VectorUDFUnixTimeStampDate(int colNum, int outputColumn) {
+ public VectorUDFUnixTimeStampDate(int colNum, int outputColumnNum) {
/* not a real field */
- super(-1, colNum, outputColumn);
+ super(-1, colNum, outputColumnNum);
dateWritable = new DateWritable();
}
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampString.java
index 16b4d0d..1c654db 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampString.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampString.java
@@ -37,8 +37,8 @@ public final class VectorUDFUnixTimeStampString extends VectorUDFTimestampFieldS
private transient final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private transient final Calendar calendar = Calendar.getInstance();
- public VectorUDFUnixTimeStampString(int colNum, int outputColumn) {
- super(colNum, outputColumn, -1, -1);
+ public VectorUDFUnixTimeStampString(int colNum, int outputColumnNum) {
+ super(colNum, outputColumnNum, -1, -1);
}
public VectorUDFUnixTimeStampString() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampTimestamp.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampTimestamp.java
index 2bd7756..48520fd 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampTimestamp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampTimestamp.java
@@ -33,9 +33,9 @@ public final class VectorUDFUnixTimeStampTimestamp extends VectorUDFTimestampFie
return timestampColVector.asScratchTimestamp(elementNum).getTime() / 1000;
}
- public VectorUDFUnixTimeStampTimestamp(int colNum, int outputColumn) {
+ public VectorUDFUnixTimeStampTimestamp(int colNum, int outputColumnNum) {
/* not a real field */
- super(-1, colNum, outputColumn);
+ super(-1, colNum, outputColumnNum);
}
public VectorUDFUnixTimeStampTimestamp() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearDate.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearDate.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearDate.java
index 8e8f125..8793f7d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearDate.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearDate.java
@@ -28,17 +28,16 @@ public final class VectorUDFWeekOfYearDate extends VectorUDFTimestampFieldDate {
private static final long serialVersionUID = 1L;
- public VectorUDFWeekOfYearDate(int colNum, int outputColumn) {
- super(Calendar.WEEK_OF_YEAR, colNum, outputColumn);
- initCalendar();
+ public VectorUDFWeekOfYearDate(int colNum, int outputColumnNum) {
+ super(Calendar.WEEK_OF_YEAR, colNum, outputColumnNum);
}
public VectorUDFWeekOfYearDate() {
super();
- initCalendar();
}
- private void initCalendar() {
+ @Override
+ public void initCalendar() {
/* code copied over from UDFWeekOfYear implementation */
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setMinimalDaysInFirstWeek(4);
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearString.java
index cb1e6ca..89b89a6 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearString.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearString.java
@@ -35,16 +35,21 @@ public final class VectorUDFWeekOfYearString extends VectorUDFTimestampFieldStri
private static final long serialVersionUID = 1L;
private transient final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- private transient final Calendar calendar = Calendar.getInstance();
- public VectorUDFWeekOfYearString(int colNum, int outputColumn) {
- super(colNum, outputColumn, -1, -1);
- initCalendar();
+ public VectorUDFWeekOfYearString(int colNum, int outputColumnNum) {
+ super(colNum, outputColumnNum, -1, -1);
}
public VectorUDFWeekOfYearString() {
super();
- initCalendar();
+ }
+
+ @Override
+ public void initCalendar() {
+
+ // code copied over from UDFWeekOfYear implementation
+ calendar.setFirstDayOfWeek(Calendar.MONDAY);
+ calendar.setMinimalDaysInFirstWeek(4);
}
@Override
@@ -59,11 +64,4 @@ public final class VectorUDFWeekOfYearString extends VectorUDFTimestampFieldStri
calendar.setTime(date);
return calendar.get(Calendar.WEEK_OF_YEAR);
}
-
- private void initCalendar() {
-
- // code copied over from UDFWeekOfYear implementation
- calendar.setFirstDayOfWeek(Calendar.MONDAY);
- calendar.setMinimalDaysInFirstWeek(4);
- }
}
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearTimestamp.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearTimestamp.java
index 4b9c26b..636ded5 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearTimestamp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearTimestamp.java
@@ -28,17 +28,16 @@ public final class VectorUDFWeekOfYearTimestamp extends VectorUDFTimestampFieldT
private static final long serialVersionUID = 1L;
- public VectorUDFWeekOfYearTimestamp(int colNum, int outputColumn) {
- super(Calendar.WEEK_OF_YEAR, colNum, outputColumn);
- initCalendar();
+ public VectorUDFWeekOfYearTimestamp(int colNum, int outputColumnNum) {
+ super(Calendar.WEEK_OF_YEAR, colNum, outputColumnNum);
}
public VectorUDFWeekOfYearTimestamp() {
super();
- initCalendar();
}
- private void initCalendar() {
+ @Override
+ public void initCalendar() {
/* code copied over from UDFWeekOfYear implementation */
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setMinimalDaysInFirstWeek(4);
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearDate.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearDate.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearDate.java
index a2d098d..ac29781 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearDate.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearDate.java
@@ -28,8 +28,8 @@ public final class VectorUDFYearDate extends VectorUDFTimestampFieldDate {
private static final long serialVersionUID = 1L;
- public VectorUDFYearDate(int colNum, int outputColumn) {
- super(Calendar.YEAR, colNum, outputColumn);
+ public VectorUDFYearDate(int colNum, int outputColumnNum) {
+ super(Calendar.YEAR, colNum, outputColumnNum);
}
public VectorUDFYearDate() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearString.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearString.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearString.java
index 69acb85..ed6ce32 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearString.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearString.java
@@ -26,8 +26,8 @@ public final class VectorUDFYearString extends VectorUDFTimestampFieldString {
private static final long serialVersionUID = 1L;
- public VectorUDFYearString(int colNum, int outputColumn) {
- super(colNum, outputColumn, 0, 4);
+ public VectorUDFYearString(int colNum, int outputColumnNum) {
+ super(colNum, outputColumnNum, 0, 4);
}
public VectorUDFYearString() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearTimestamp.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearTimestamp.java
index f418bb3..d4192cc 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearTimestamp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearTimestamp.java
@@ -28,8 +28,8 @@ public final class VectorUDFYearTimestamp extends VectorUDFTimestampFieldTimesta
private static final long serialVersionUID = 1L;
- public VectorUDFYearTimestamp(int colNum, int outputColumn) {
- super(Calendar.YEAR, colNum, outputColumn);
+ public VectorUDFYearTimestamp(int colNum, int outputColumnNum) {
+ super(Calendar.YEAR, colNum, outputColumnNum);
}
public VectorUDFYearTimestamp() {
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorAggregateExpression.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorAggregateExpression.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorAggregateExpression.java
index 702c3d5..9b045cf 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorAggregateExpression.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorAggregateExpression.java
@@ -20,13 +20,18 @@ package org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates;
import java.io.Serializable;
+import org.apache.hadoop.hive.common.type.DataTypePhysicalVariation;
+import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorAggregationBufferRow;
+import org.apache.hadoop.hive.ql.exec.vector.VectorAggregationDesc;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.plan.AggregationDesc;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
+import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator.Mode;
/**
* Base class for aggregation expressions.
@@ -35,19 +40,64 @@ public abstract class VectorAggregateExpression implements Serializable {
private static final long serialVersionUID = 1L;
+ protected final VectorAggregationDesc vecAggrDesc;
+
protected final VectorExpression inputExpression;
+ protected final TypeInfo inputTypeInfo;
+
+ protected final TypeInfo outputTypeInfo;
+ protected final DataTypePhysicalVariation outputDataTypePhysicalVariation;
protected final GenericUDAFEvaluator.Mode mode;
- public VectorAggregateExpression(VectorExpression inputExpression,
- GenericUDAFEvaluator.Mode mode) {
- this.inputExpression = inputExpression;
- this.mode = mode;
+ public static final int AVERAGE_COUNT_FIELD_INDEX = 0;
+ public static final int AVERAGE_SUM_FIELD_INDEX = 1;
+ public static final int AVERAGE_SOURCE_FIELD_INDEX = 2;
+
+ public static final int VARIANCE_COUNT_FIELD_INDEX = 0;
+ public static final int VARIANCE_SUM_FIELD_INDEX = 1;
+ public static final int VARIANCE_VARIANCE_FIELD_INDEX = 2;
+
+ // This constructor is used to momentarily create the object so match can be called.
+ public VectorAggregateExpression() {
+ this.vecAggrDesc = null;
+
+ // Null out final members.
+ inputExpression = null;
+ inputTypeInfo = null;
+
+ outputTypeInfo = null;
+ outputDataTypePhysicalVariation = null;
+
+ mode = null;
+ }
+
+ public VectorAggregateExpression(VectorAggregationDesc vecAggrDesc) {
+ this.vecAggrDesc = vecAggrDesc;
+
+ inputExpression = vecAggrDesc.getInputExpression();
+ if (inputExpression != null) {
+ inputTypeInfo = inputExpression.getOutputTypeInfo();
+ } else {
+ inputTypeInfo = null;
+ }
+
+ outputTypeInfo = vecAggrDesc.getOutputTypeInfo();
+ outputDataTypePhysicalVariation = vecAggrDesc.getOutputDataTypePhysicalVariation();
+
+ mode = vecAggrDesc.getAggrDesc().getMode();
}
public VectorExpression getInputExpression() {
return inputExpression;
}
+ public TypeInfo getOutputTypeInfo() {
+ return outputTypeInfo;
+ }
+ public DataTypePhysicalVariation getOutputDataTypePhysicalVariation() {
+ return outputDataTypePhysicalVariation;
+ }
+
/**
* Buffer interface to store aggregates.
*/
@@ -57,37 +107,43 @@ public abstract class VectorAggregateExpression implements Serializable {
void reset();
};
+ /*
+ * VectorAggregateExpression()
+ * VectorAggregateExpression(VectorAggregationDesc vecAggrDesc)
+ *
+ * AggregationBuffer getNewAggregationBuffer()
+ * void aggregateInput(AggregationBuffer agg, VectorizedRowBatch unit)
+ * void aggregateInputSelection(VectorAggregationBufferRow[] aggregationBufferSets,
+ * int aggregateIndex, VectorizedRowBatch vrg)
+ * void reset(AggregationBuffer agg)
+ * long getAggregationBufferFixedSize()
+ *
+ * boolean matches(String name, ColumnVector.Type inputColVectorType,
+ * ColumnVector.Type outputColVectorType, Mode mode)
+ * assignRowColumn(VectorizedRowBatch batch, int batchIndex, int columnNum,
+ * AggregationBuffer agg)
+ *
+ */
public abstract AggregationBuffer getNewAggregationBuffer() throws HiveException;
public abstract void aggregateInput(AggregationBuffer agg, VectorizedRowBatch unit)
throws HiveException;
public abstract void aggregateInputSelection(VectorAggregationBufferRow[] aggregationBufferSets,
int aggregateIndex, VectorizedRowBatch vrg) throws HiveException;
public abstract void reset(AggregationBuffer agg) throws HiveException;
- public abstract Object evaluateOutput(AggregationBuffer agg) throws HiveException;
-
- public abstract ObjectInspector getOutputObjectInspector();
public abstract long getAggregationBufferFixedSize();
public boolean hasVariableSize() {
return false;
}
- public abstract void init(AggregationDesc desc) throws HiveException;
+ public abstract boolean matches(String name, ColumnVector.Type inputColVectorType,
+ ColumnVector.Type outputColVectorType, Mode mode);
+
+ public abstract void assignRowColumn(VectorizedRowBatch batch, int batchIndex, int columnNum,
+ AggregationBuffer agg) throws HiveException;
@Override
public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(this.getClass().getSimpleName());
- VectorExpression inputExpression = getInputExpression();
- if (inputExpression != null) {
- sb.append("(");
- sb.append(inputExpression.toString());
- sb.append(") -> ");
- } else {
- sb.append("(*) -> ");
- }
- ObjectInspector outputObjectInspector = getOutputObjectInspector();
- sb.append(outputObjectInspector.getTypeName());
- return sb.toString();
+ return vecAggrDesc.toString();
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/e63ebccc/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFBloomFilter.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFBloomFilter.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFBloomFilter.java
index 0e308f9..9d1a2b8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFBloomFilter.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFBloomFilter.java
@@ -24,22 +24,26 @@ import java.io.IOException;
import org.apache.hadoop.hive.common.type.HiveDecimal;
import org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.ColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.ColumnVector.Type;
import org.apache.hadoop.hive.ql.exec.vector.DecimalColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.DoubleColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.TimestampColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorAggregationBufferRow;
+import org.apache.hadoop.hive.ql.exec.vector.VectorAggregationDesc;
import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.VectorAggregateExpression.AggregationBuffer;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.VectorUDAFCount.Aggregation;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.plan.AggregationDesc;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFBloomFilter.GenericUDAFBloomFilterEvaluator;
+import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator.Mode;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator;
import org.apache.hadoop.hive.ql.util.JavaDataModel;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
-import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.IOUtils;
import org.apache.hive.common.util.BloomKFilter;
@@ -50,7 +54,6 @@ public class VectorUDAFBloomFilter extends VectorAggregateExpression {
private long expectedEntries = -1;
private ValueProcessor valueProcessor;
transient private int bitSetSize;
- transient private BytesWritable bw;
transient private ByteArrayOutputStream byteStream;
/**
@@ -76,42 +79,50 @@ public class VectorUDAFBloomFilter extends VectorAggregateExpression {
}
}
- public VectorUDAFBloomFilter(VectorExpression inputExpression,
- GenericUDAFEvaluator.Mode mode) {
- super(inputExpression, mode);
+ // This constructor is used to momentarily create the object so match can be called.
+ public VectorUDAFBloomFilter() {
+ super();
+ }
+
+ public VectorUDAFBloomFilter(VectorAggregationDesc vecAggrDesc) {
+ super(vecAggrDesc);
+ init();
}
private void init() {
+
+ GenericUDAFBloomFilterEvaluator udafBloomFilter =
+ (GenericUDAFBloomFilterEvaluator) vecAggrDesc.getEvaluator();
+ expectedEntries = udafBloomFilter.getExpectedEntries();
+
bitSetSize = -1;
- bw = new BytesWritable();
byteStream = new ByteArrayOutputStream();
// Instantiate the ValueProcessor based on the input type
- VectorExpressionDescriptor.ArgumentType inputType =
- VectorExpressionDescriptor.ArgumentType.fromHiveTypeName(inputExpression.getOutputType());
- switch (inputType) {
- case INT_FAMILY:
- case DATE:
+ ColumnVector.Type colVectorType;
+ try {
+ colVectorType = inputExpression.getOutputColumnVectorType();
+ } catch (HiveException e) {
+ throw new RuntimeException(e);
+ }
+ switch (colVectorType) {
+ case LONG:
valueProcessor = new ValueProcessorLong();
break;
- case FLOAT_FAMILY:
+ case DOUBLE:
valueProcessor = new ValueProcessorDouble();
break;
case DECIMAL:
valueProcessor = new ValueProcessorDecimal();
break;
- case STRING:
- case CHAR:
- case VARCHAR:
- case STRING_FAMILY:
- case BINARY:
+ case BYTES:
valueProcessor = new ValueProcessorBytes();
break;
case TIMESTAMP:
valueProcessor = new ValueProcessorTimestamp();
break;
default:
- throw new IllegalStateException("Unsupported type " + inputType);
+ throw new IllegalStateException("Unsupported column vector type " + colVectorType);
}
}
@@ -129,7 +140,7 @@ public class VectorUDAFBloomFilter extends VectorAggregateExpression {
inputExpression.evaluate(batch);
- ColumnVector inputColumn = batch.cols[this.inputExpression.getOutputColumn()];
+ ColumnVector inputColumn = batch.cols[this.inputExpression.getOutputColumnNum()];
int batchSize = batch.size;
@@ -220,7 +231,7 @@ public class VectorUDAFBloomFilter extends VectorAggregateExpression {
inputExpression.evaluate(batch);
- ColumnVector inputColumn = batch.cols[this.inputExpression.getOutputColumn()];
+ ColumnVector inputColumn = batch.cols[this.inputExpression.getOutputColumnNum()];
if (inputColumn.noNulls) {
if (inputColumn.isRepeating) {
@@ -352,27 +363,6 @@ public class VectorUDAFBloomFilter extends VectorAggregateExpression {
}
@Override
- public Object evaluateOutput(AggregationBuffer agg) throws HiveException {
- try {
- Aggregation bfAgg = (Aggregation) agg;
- byteStream.reset();
- BloomKFilter.serialize(byteStream, bfAgg.bf);
- byte[] bytes = byteStream.toByteArray();
- bw.set(bytes, 0, bytes.length);
- return bw;
- } catch (IOException err) {
- throw new HiveException("Error encountered while serializing bloomfilter", err);
- } finally {
- IOUtils.closeStream(byteStream);
- }
- }
-
- @Override
- public ObjectInspector getOutputObjectInspector() {
- return PrimitiveObjectInspectorFactory.writableBinaryObjectInspector;
- }
-
- @Override
public long getAggregationBufferFixedSize() {
if (bitSetSize < 0) {
// Not pretty, but we need a way to get the size
@@ -393,15 +383,6 @@ public class VectorUDAFBloomFilter extends VectorAggregateExpression {
model.memoryAlign());
}
- @Override
- public void init(AggregationDesc desc) throws HiveException {
- init();
-
- GenericUDAFBloomFilterEvaluator udafBloomFilter =
- (GenericUDAFBloomFilterEvaluator) desc.getGenericUDAFEvaluator();
- expectedEntries = udafBloomFilter.getExpectedEntries();
- }
-
public long getExpectedEntries() {
return expectedEntries;
}
@@ -461,4 +442,41 @@ public class VectorUDAFBloomFilter extends VectorAggregateExpression {
myagg.bf.addLong(inputColumn.time[i]);
}
}
+
+ @Override
+ public boolean matches(String name, ColumnVector.Type inputColVectorType,
+ ColumnVector.Type outputColVectorType, Mode mode) {
+
+ /*
+ * Bloom filter *any* input and output is BYTES.
+ *
+ * Just modes (PARTIAL1, COMPLETE).
+ */
+ return
+ name.equals("bloom_filter") &&
+ outputColVectorType == ColumnVector.Type.BYTES &&
+ (mode == Mode.PARTIAL1 || mode == Mode.COMPLETE);
+ }
+
+ @Override
+ public void assignRowColumn(VectorizedRowBatch batch, int batchIndex, int columnNum,
+ AggregationBuffer agg) throws HiveException {
+
+ BytesColumnVector outputColVector = (BytesColumnVector) batch.cols[columnNum];
+ Aggregation myagg = (Aggregation) agg;
+ outputColVector.isNull[batchIndex] = false;
+
+ try {
+ Aggregation bfAgg = (Aggregation) agg;
+ byteStream.reset();
+ BloomKFilter.serialize(byteStream, bfAgg.bf);
+ byte[] bytes = byteStream.toByteArray();
+
+ outputColVector.setVal(batchIndex, bytes);
+ } catch (IOException err) {
+ throw new HiveException("Error encountered while serializing bloomfilter", err);
+ } finally {
+ IOUtils.closeStream(byteStream);
+ }
+ }
}