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/02/03 20:04:15 UTC
[50/51] [partial] hive git commit: HIVE-11394: Enhance EXPLAIN
display for vectorization (Matt McCline, reviewed by Gopal Vijayaraghavan)
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt
index b7544c7..037382c 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt
@@ -32,8 +32,8 @@ public class <ClassName> extends VectorExpression {
private static final long serialVersionUID = 1L;
- private int colNum;
- private <OperandType1> value;
+ protected int colNum;
+ protected <OperandType1> value;
public <ClassName>(<OperandType1> value, int colNum) {
this.colNum = colNum;
@@ -158,6 +158,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt
index 16d4aaf..47044d6 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt
@@ -18,6 +18,8 @@
package org.apache.hadoop.hive.ql.exec.vector.expressions.gen;
+import java.nio.charset.StandardCharsets;
+
import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
import org.apache.hadoop.hive.ql.exec.vector.expressions.StringExpr;
import org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector;
@@ -176,7 +178,12 @@ public class <ClassName> extends VectorExpression {
public void setRightValue(byte[] value) {
this.right = value;
}
-
+
+ @Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", left " + displayUtf8Bytes(left) + ", right " + displayUtf8Bytes(right);
+ }
+
@Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt
index a72b882..9114932 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt
@@ -477,6 +477,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum1 + ", col " + + colNum2;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt
index 8b1c366..916bc12 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt
@@ -18,6 +18,8 @@
package org.apache.hadoop.hive.ql.exec.vector.expressions.gen;
+import java.nio.charset.StandardCharsets;
+
import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
import org.apache.hadoop.hive.ql.exec.vector.expressions.StringExpr;
import org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector;
@@ -152,4 +154,9 @@ public abstract class <ClassName> extends VectorExpression {
this.value = value;
}
+ @Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", val " + displayUtf8Bytes(value);
+ }
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt
index 930069c..bfc58a1 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt
@@ -18,6 +18,8 @@
package org.apache.hadoop.hive.ql.exec.vector.expressions.gen;
+import java.nio.charset.StandardCharsets;
+
import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
import org.apache.hadoop.hive.ql.exec.vector.expressions.StringExpr;
import org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector;
@@ -155,4 +157,10 @@ public abstract class <ClassName> extends VectorExpression {
public void setValue(byte[] value) {
this.value = value;
}
+
+ @Override
+ public String vectorExpressionParameters() {
+ return "val " + displayUtf8Bytes(value) + ", col " + + colNum;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnBetween.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnBetween.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnBetween.txt
index 806148f..9c268e2 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnBetween.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnBetween.txt
@@ -170,6 +170,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", left " + leftValue.toString() + ", right " + rightValue.toString();
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareLongDoubleColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareLongDoubleColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareLongDoubleColumn.txt
index d10be96..8873826 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareLongDoubleColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareLongDoubleColumn.txt
@@ -167,6 +167,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum1 + ", col " + + colNum2;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareLongDoubleScalar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareLongDoubleScalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareLongDoubleScalar.txt
index 31c3f6b..8583eee 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareLongDoubleScalar.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareLongDoubleScalar.txt
@@ -150,6 +150,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", val " + value;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampColumn.txt
index 31dce1c..eeb73c9 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampColumn.txt
@@ -436,6 +436,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum1 + ", col " + + colNum2;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt
index bab8508..23790a5 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt
@@ -147,6 +147,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", val " + value.toString();
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareLongDoubleColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareLongDoubleColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareLongDoubleColumn.txt
index 5e418de..0e10779 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareLongDoubleColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareLongDoubleColumn.txt
@@ -43,6 +43,11 @@ public class <ClassName> extends <BaseClassName> {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt
index ff5d11e..5a6def3 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt
@@ -149,6 +149,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value.toString() + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt
index d350dcb..a8f5114 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt
@@ -18,6 +18,8 @@
package org.apache.hadoop.hive.ql.exec.vector.expressions.gen;
+import java.nio.charset.StandardCharsets;
+
import org.apache.hadoop.hive.common.type.<TruncStringHiveType>;
import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
@@ -178,7 +180,13 @@ public class <ClassName> extends VectorExpression {
public void setRightValue(byte[] value) {
this.right = value;
}
-
+
+ @Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", left " + displayUtf8Bytes(left) +
+ ", right " + displayUtf8Bytes(right);
+ }
+
@Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/IfExprColumnScalar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/IfExprColumnScalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/IfExprColumnScalar.txt
index 3a75a26..9f4bb75 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/IfExprColumnScalar.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/IfExprColumnScalar.txt
@@ -160,6 +160,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + arg1Column + ", col " + arg2Column + ", val "+ arg3Scalar;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/IfExprScalarColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/IfExprScalarColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/IfExprScalarColumn.txt
index 648b776..487d894 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/IfExprScalarColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/IfExprScalarColumn.txt
@@ -162,6 +162,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + arg1Column + ", val "+ arg2Scalar + ", col "+ arg3Column;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/IfExprScalarScalar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/IfExprScalarScalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/IfExprScalarScalar.txt
index def9863..5651d15 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/IfExprScalarScalar.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/IfExprScalarScalar.txt
@@ -147,6 +147,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + arg1Column + ", val "+ arg2Scalar + ", val "+ arg3Scalar;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticDateColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticDateColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticDateColumn.txt
index 8e3a419..49a1950 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticDateColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticDateColumn.txt
@@ -180,6 +180,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum1 + ", col " + + colNum2;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticDateScalar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticDateScalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticDateScalar.txt
index ad65d52..283352d 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticDateScalar.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticDateScalar.txt
@@ -141,6 +141,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", val " + value.toString();
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticTimestampColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticTimestampColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticTimestampColumn.txt
index 858c3d7..9eba829 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticTimestampColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticTimestampColumn.txt
@@ -170,6 +170,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum1 + ", col " + + colNum2;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticTimestampScalar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticTimestampScalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticTimestampScalar.txt
index 66fffd2..9a06822 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticTimestampScalar.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticTimestampScalar.txt
@@ -139,6 +139,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", val " + value.toString();
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthScalarArithmeticDateColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthScalarArithmeticDateColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthScalarArithmeticDateColumn.txt
index ddde913..a5d9877 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthScalarArithmeticDateColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthScalarArithmeticDateColumn.txt
@@ -155,6 +155,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value.toString() + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthScalarArithmeticTimestampColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthScalarArithmeticTimestampColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthScalarArithmeticTimestampColumn.txt
index cbb7021..9a0d397 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthScalarArithmeticTimestampColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthScalarArithmeticTimestampColumn.txt
@@ -143,6 +143,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value.toString() + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleColumnCompareTimestampColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleColumnCompareTimestampColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleColumnCompareTimestampColumn.txt
index 9ccfaac..cff2deb 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleColumnCompareTimestampColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleColumnCompareTimestampColumn.txt
@@ -139,6 +139,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum1 + ", col " + + colNum2;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleColumnCompareTimestampScalar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleColumnCompareTimestampScalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleColumnCompareTimestampScalar.txt
index c7d8c65..8308a30 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleColumnCompareTimestampScalar.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleColumnCompareTimestampScalar.txt
@@ -129,6 +129,10 @@ public class <ClassName> extends VectorExpression {
return "long";
}
+ @Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", val " + value;
+ }
@Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleScalarCompareTimestampColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleScalarCompareTimestampColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleScalarCompareTimestampColumn.txt
index d47bc10..6aa30e4 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleScalarCompareTimestampColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/LongDoubleScalarCompareTimestampColumn.txt
@@ -129,6 +129,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt
index 4fcbdc0..8473599 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt
@@ -146,6 +146,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt b/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt
index ea55bec..d3fd9bd 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt
@@ -129,6 +129,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value.toString() + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt b/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt
deleted file mode 100644
index 91887c8..0000000
--- a/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt
+++ /dev/null
@@ -1,163 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hadoop.hive.ql.exec.vector.expressions.gen;
-
-import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
-import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
-import org.apache.hadoop.hive.ql.exec.vector.*;
-
-
-/*
- * Because of the templatized nature of the code, either or both
- * of these ColumnVector imports may be needed. Listing both of them
- * rather than using ....vectorization.*;
- */
-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.VectorizedRowBatch;
-import org.apache.hadoop.hive.ql.exec.vector.expressions.NullUtil;
-
-/**
- * Generated from template ScalarArithmeticColumnWithConvert.txt.
- * Implements a vectorized arithmetic operator with a scalar on the left and a
- * column vector on the right. The result is output to an output column vector.
- */
-public class <ClassName> extends VectorExpression {
-
- private static final long serialVersionUID = 1L;
-
- private int colNum;
- private <VectorOperandType1> value;
- private int outputColumn;
-
- public <ClassName>(<VectorOperandType1> value, int colNum, int outputColumn) {
- this.colNum = colNum;
- this.value = <TypeConversion1>(value);
- this.outputColumn = outputColumn;
- }
-
- public <ClassName>() {
- }
-
- @Override
- /**
- * Method to evaluate scalar-column operation in vectorized fashion.
- *
- * @batch a package of rows with each column stored in a vector
- */
- public void evaluate(VectorizedRowBatch batch) {
-
- if (childExpressions != null) {
- super.evaluateChildren(batch);
- }
-
- <InputColumnVectorType> inputColVector = (<InputColumnVectorType>) batch.cols[colNum];
- <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
- int[] sel = batch.selected;
- boolean[] inputIsNull = inputColVector.isNull;
- boolean[] outputIsNull = outputColVector.isNull;
- outputColVector.noNulls = inputColVector.noNulls;
- outputColVector.isRepeating = inputColVector.isRepeating;
- int n = batch.size;
- <VectorOperandType2>[] vector = inputColVector.vector;
- <VectorReturnType>[] outputVector = outputColVector.vector;
-
- // return immediately if batch is empty
- if (n == 0) {
- return;
- }
-
- if (inputColVector.isRepeating) {
- outputVector[0] = value <OperatorSymbol> <TypeConversion2>(vector[0]);
-
- // Even if there are no nulls, we always copy over entry 0. Simplifies code.
- outputIsNull[0] = inputIsNull[0];
- } else if (inputColVector.noNulls) {
- if (batch.selectedInUse) {
- for(int j = 0; j != n; j++) {
- int i = sel[j];
- outputVector[i] = value <OperatorSymbol> <TypeConversion2>(vector[i]);
- }
- } else {
- for(int i = 0; i != n; i++) {
- outputVector[i] = value <OperatorSymbol> <TypeConversion2>(vector[i]);
- }
- }
- } else { /* there are nulls */
- if (batch.selectedInUse) {
- for(int j = 0; j != n; j++) {
- int i = sel[j];
- outputVector[i] = value <OperatorSymbol> <TypeConversion2>(vector[i]);
- outputIsNull[i] = inputIsNull[i];
- }
- } else {
- for(int i = 0; i != n; i++) {
- outputVector[i] = value <OperatorSymbol> <TypeConversion2>(vector[i]);
- }
- System.arraycopy(inputIsNull, 0, outputIsNull, 0, n);
- }
- }
-
- NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n);
- }
-
- @Override
- public int getOutputColumn() {
- return outputColumn;
- }
-
- @Override
- public String getOutputType() {
- return "<VectorReturnType>";
- }
-
- public int getColNum() {
- return colNum;
- }
-
- public void setColNum(int colNum) {
- this.colNum = colNum;
- }
-
- public <VectorOperandType1> getValue() {
- return value;
- }
-
- public void setValue(<VectorOperandType1> value) {
- this.value = value;
- }
-
- public void setOutputColumn(int outputColumn) {
- this.outputColumn = outputColumn;
- }
-
- @Override
- public VectorExpressionDescriptor.Descriptor getDescriptor() {
- return (new VectorExpressionDescriptor.Builder())
- .setMode(
- VectorExpressionDescriptor.Mode.PROJECTION)
- .setNumArguments(2)
- .setArgumentTypes(
- VectorExpressionDescriptor.ArgumentType.getType("<OperandType1>"),
- VectorExpressionDescriptor.ArgumentType.getType("<OperandType2>"))
- .setInputExpressionTypes(
- VectorExpressionDescriptor.InputExpressionType.SCALAR,
- VectorExpressionDescriptor.InputExpressionType.COLUMN).build();
- }
-}
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt
index e6e59f5..6f9e2e2 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt
@@ -149,6 +149,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/ScalarDivideColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/ScalarDivideColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/ScalarDivideColumn.txt
index f8a8457..8e6e8a9 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/ScalarDivideColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/ScalarDivideColumn.txt
@@ -162,6 +162,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/ScalarDivideColumnDecimal.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/ScalarDivideColumnDecimal.txt b/ql/src/gen/vectorization/ExpressionTemplates/ScalarDivideColumnDecimal.txt
index c8a5d17..1014978 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/ScalarDivideColumnDecimal.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/ScalarDivideColumnDecimal.txt
@@ -131,6 +131,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value.toString() + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt
index e881037..747f707 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt
@@ -493,6 +493,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum1 + ", col " + + colNum2;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt b/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt
index 92bf27a..08b3e75 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt
@@ -18,6 +18,8 @@
package org.apache.hadoop.hive.ql.exec.vector.expressions.gen;
+import java.nio.charset.StandardCharsets;
+
import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
import org.apache.hadoop.hive.ql.exec.vector.expressions.StringExpr;
import org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector;
@@ -155,4 +157,8 @@ public abstract class <ClassName> extends VectorExpression {
this.outputColumn = outputColumn;
}
+ @Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", val " + displayUtf8Bytes(value);
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt
index 8a92f54..969fe1b 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt
@@ -20,6 +20,8 @@ package org.apache.hadoop.hive.ql.exec.vector.expressions.gen;
import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.<BaseClassName>;
+import java.nio.charset.StandardCharsets;
+
import org.apache.hadoop.hive.common.type.<TruncStringHiveType>;
import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
@@ -44,6 +46,11 @@ public class <ClassName> extends <BaseClassName> {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", val " + displayUtf8Bytes(value);
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt b/ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt
index 238dc93..dee2bfc 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt
@@ -18,6 +18,8 @@
package org.apache.hadoop.hive.ql.exec.vector.expressions.gen;
+import java.nio.charset.StandardCharsets;
+
import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
import org.apache.hadoop.hive.ql.exec.vector.expressions.StringExpr;
import org.apache.hadoop.hive.ql.exec.vector.BytesColumnVector;
@@ -154,4 +156,9 @@ public abstract class <ClassName> extends VectorExpression {
public void setOutputColumn(int outputColumn) {
this.outputColumn = outputColumn;
}
+
+ @Override
+ public String vectorExpressionParameters() {
+ return "val " + displayUtf8Bytes(value) + ", col " + + colNum;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticDateColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticDateColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticDateColumn.txt
index 27e083d..7aeff81 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticDateColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticDateColumn.txt
@@ -171,6 +171,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum1 + ", col " + + colNum2;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticDateScalar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticDateScalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticDateScalar.txt
index 8b91a4a..f8cb880 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticDateScalar.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticDateScalar.txt
@@ -132,6 +132,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", val " + value.toString();
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticIntervalYearMonthColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticIntervalYearMonthColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticIntervalYearMonthColumn.txt
index 4ac2174..989e2f5 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticIntervalYearMonthColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticIntervalYearMonthColumn.txt
@@ -170,6 +170,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum1 + ", col " + + colNum2;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticIntervalYearMonthScalar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticIntervalYearMonthScalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticIntervalYearMonthScalar.txt
index 9382aca..a90b1b2 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticIntervalYearMonthScalar.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticIntervalYearMonthScalar.txt
@@ -128,6 +128,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", val " + value.toString();
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticTimestampColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticTimestampColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticTimestampColumn.txt
index 5eaa450..ad43cac 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticTimestampColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticTimestampColumn.txt
@@ -161,6 +161,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum1 + ", col " + + colNum2;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticTimestampScalar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticTimestampScalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticTimestampScalar.txt
index c6c872f..32b49a3 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticTimestampScalar.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticTimestampScalar.txt
@@ -130,6 +130,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", val " + value.toString();
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareLongDoubleColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareLongDoubleColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareLongDoubleColumn.txt
index 0fc402d..7267148 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareLongDoubleColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareLongDoubleColumn.txt
@@ -138,6 +138,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum1 + ", col " + + colNum2;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareLongDoubleScalar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareLongDoubleScalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareLongDoubleScalar.txt
index e0ae206..2be05f3 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareLongDoubleScalar.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareLongDoubleScalar.txt
@@ -129,6 +129,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", val " + value;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampColumn.txt
index f9fc425..2710fa4 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampColumn.txt
@@ -143,6 +143,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum1 + ", col " + + colNum2;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt
index 90701ec..32647f2 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt
@@ -133,6 +133,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "col " + colNum + ", val " + value.toString();
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticDateColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticDateColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticDateColumn.txt
index f958be8..dea4db2 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticDateColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticDateColumn.txt
@@ -153,6 +153,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value.toString() + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticIntervalYearMonthColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticIntervalYearMonthColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticIntervalYearMonthColumn.txt
index 585027a..e82b9e2 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticIntervalYearMonthColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticIntervalYearMonthColumn.txt
@@ -152,6 +152,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value.toString() + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticTimestampColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticTimestampColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticTimestampColumn.txt
index 996c86a..0d8a26b 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticTimestampColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticTimestampColumn.txt
@@ -143,6 +143,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value.toString() + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt
index 6506c93..ec0a395 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt
@@ -135,6 +135,11 @@ public class <ClassName> extends VectorExpression {
}
@Override
+ public String vectorExpressionParameters() {
+ return "val " + value.toString() + ", col " + + colNum;
+ }
+
+ @Override
public VectorExpressionDescriptor.Descriptor getDescriptor() {
return (new VectorExpressionDescriptor.Builder())
.setMode(
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt b/ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt
index a9a3b6d..26da73a 100644
--- a/ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt
+++ b/ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt
@@ -20,6 +20,8 @@ package org.apache.hadoop.hive.ql.exec.vector.expressions.gen;
import org.apache.hadoop.hive.ql.exec.vector.expressions.gen.<BaseClassName>;
+import java.nio.charset.StandardCharsets;
+
import org.apache.hadoop.hive.common.type.<TruncStringHiveType>;
import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFAvg.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFAvg.txt b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFAvg.txt
index d153fd6..4393c3b 100644
--- a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFAvg.txt
+++ b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFAvg.txt
@@ -85,6 +85,12 @@ public class <ClassName> extends VectorAggregateExpression {
}
private VectorExpression inputExpression;
+
+ @Override
+ public VectorExpression inputExpression() {
+ return inputExpression;
+ }
+
transient private Object[] partialResult;
transient private LongWritable resultCount;
transient private DoubleWritable resultSum;
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMax.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMax.txt b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMax.txt
index 46d66bd..7468c2f 100644
--- a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMax.txt
+++ b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMax.txt
@@ -77,6 +77,12 @@ public class <ClassName> extends VectorAggregateExpression {
}
private VectorExpression inputExpression;
+
+ @Override
+ public VectorExpression inputExpression() {
+ return inputExpression;
+ }
+
private transient VectorExpressionWriter resultWriter;
public <ClassName>(VectorExpression inputExpression) {
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxDecimal.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxDecimal.txt b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxDecimal.txt
index b532e2f..57b7ea5 100644
--- a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxDecimal.txt
+++ b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxDecimal.txt
@@ -82,6 +82,12 @@ public class <ClassName> extends VectorAggregateExpression {
}
private VectorExpression inputExpression;
+
+ @Override
+ public VectorExpression inputExpression() {
+ return inputExpression;
+ }
+
private transient VectorExpressionWriter resultWriter;
public <ClassName>(VectorExpression inputExpression) {
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxIntervalDayTime.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxIntervalDayTime.txt b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxIntervalDayTime.txt
index 3cdf7e2..749e97e 100644
--- a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxIntervalDayTime.txt
+++ b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxIntervalDayTime.txt
@@ -81,6 +81,12 @@ public class <ClassName> extends VectorAggregateExpression {
}
private VectorExpression inputExpression;
+
+ @Override
+ public VectorExpression inputExpression() {
+ return inputExpression;
+ }
+
private transient VectorExpressionWriter resultWriter;
public <ClassName>(VectorExpression inputExpression) {
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxString.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxString.txt b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxString.txt
index cdce457..9dfc147 100644
--- a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxString.txt
+++ b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxString.txt
@@ -93,6 +93,12 @@ public class <ClassName> extends VectorAggregateExpression {
}
private VectorExpression inputExpression;
+
+ @Override
+ public VectorExpression inputExpression() {
+ return inputExpression;
+ }
+
transient private Text result;
public <ClassName>(VectorExpression inputExpression) {
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxTimestamp.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxTimestamp.txt b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxTimestamp.txt
index 7e34965..32ecb34 100644
--- a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxTimestamp.txt
+++ b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxTimestamp.txt
@@ -83,6 +83,12 @@ public class <ClassName> extends VectorAggregateExpression {
}
private VectorExpression inputExpression;
+
+ @Override
+ public VectorExpression inputExpression() {
+ return inputExpression;
+ }
+
private transient VectorExpressionWriter resultWriter;
public <ClassName>(VectorExpression inputExpression) {
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFSum.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFSum.txt b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFSum.txt
index cc7e54d..bd0f14d 100644
--- a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFSum.txt
+++ b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFSum.txt
@@ -78,6 +78,12 @@ public class <ClassName> extends VectorAggregateExpression {
}
private VectorExpression inputExpression;
+
+ @Override
+ public VectorExpression inputExpression() {
+ return inputExpression;
+ }
+
transient private final <OutputType> result;
public <ClassName>(VectorExpression inputExpression) {
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFVar.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFVar.txt b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFVar.txt
index c6c9c52..dc9d4b1 100644
--- a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFVar.txt
+++ b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFVar.txt
@@ -84,6 +84,12 @@ public class <ClassName> extends VectorAggregateExpression {
}
private VectorExpression inputExpression;
+
+ @Override
+ public VectorExpression inputExpression() {
+ return inputExpression;
+ }
+
transient private LongWritable resultCount;
transient private DoubleWritable resultSum;
transient private DoubleWritable resultVariance;
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFVarDecimal.txt
----------------------------------------------------------------------
diff --git a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFVarDecimal.txt b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFVarDecimal.txt
index 8fc94ba..01062a9 100644
--- a/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFVarDecimal.txt
+++ b/ql/src/gen/vectorization/UDAFTemplates/VectorUDAFVarDecimal.txt
@@ -111,6 +111,12 @@ public class <ClassName> extends VectorAggregateExpression {
}
private VectorExpression inputExpression;
+
+ @Override
+ public VectorExpression inputExpression() {
+ return inputExpression;
+ }
+
transient private LongWritable resultCount;
transient private DoubleWritable resultSum;
transient private DoubleWritable resultVariance;
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
index b8a4693..74cec3e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
@@ -20,6 +20,8 @@ package org.apache.hadoop.hive.ql.exec;
import static org.apache.hadoop.hive.serde.serdeConstants.STRING_TYPE_NAME;
+import org.apache.commons.lang3.tuple.ImmutablePair;
+
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.Serializable;
@@ -35,30 +37,68 @@ import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Stack;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hive.common.ObjectPair;
import org.apache.hadoop.hive.common.jsonexplain.JsonParser;
import org.apache.hadoop.hive.common.jsonexplain.JsonParserFactory;
+import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.conf.Validator.StringSet;
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.ql.Driver;
import org.apache.hadoop.hive.ql.DriverContext;
+import org.apache.hadoop.hive.ql.exec.spark.SparkTask;
+import org.apache.hadoop.hive.ql.exec.tez.TezTask;
+import org.apache.hadoop.hive.ql.exec.vector.VectorGroupByOperator;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.aggregates.VectorAggregateExpression;
+import org.apache.hadoop.hive.ql.plan.MapJoinDesc;
+import org.apache.hadoop.hive.ql.plan.ReduceSinkDesc;
import org.apache.hadoop.hive.ql.hooks.ReadEntity;
+import org.apache.hadoop.hive.ql.io.AcidUtils;
+import org.apache.hadoop.hive.ql.lib.DefaultGraphWalker;
+import org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher;
+import org.apache.hadoop.hive.ql.lib.Dispatcher;
+import org.apache.hadoop.hive.ql.lib.GraphWalker;
+import org.apache.hadoop.hive.ql.lib.Node;
+import org.apache.hadoop.hive.ql.lib.NodeProcessor;
+import org.apache.hadoop.hive.ql.lib.NodeProcessorCtx;
+import org.apache.hadoop.hive.ql.lib.Rule;
import org.apache.hadoop.hive.ql.metadata.Table;
import org.apache.hadoop.hive.ql.optimizer.physical.StageIDsRearranger;
+import org.apache.hadoop.hive.ql.optimizer.physical.Vectorizer;
+import org.apache.hadoop.hive.ql.optimizer.physical.VectorizerReason;
import org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer;
+import org.apache.hadoop.hive.ql.parse.ExplainConfiguration.VectorizationDetailLevel;
+import org.apache.hadoop.hive.ql.parse.SemanticException;
+import org.apache.hadoop.hive.ql.plan.BaseWork;
import org.apache.hadoop.hive.ql.plan.Explain;
import org.apache.hadoop.hive.ql.plan.Explain.Level;
+import org.apache.hadoop.hive.ql.plan.Explain.Vectorization;
+import org.apache.hadoop.hive.ql.plan.AggregationDesc;
import org.apache.hadoop.hive.ql.plan.ExplainWork;
+import org.apache.hadoop.hive.ql.plan.GroupByDesc;
import org.apache.hadoop.hive.ql.plan.HiveOperation;
+import org.apache.hadoop.hive.ql.plan.MapredWork;
+import org.apache.hadoop.hive.ql.plan.MapWork;
+import org.apache.hadoop.hive.ql.plan.ReduceWork;
import org.apache.hadoop.hive.ql.plan.OperatorDesc;
import org.apache.hadoop.hive.ql.plan.SparkWork;
+import org.apache.hadoop.hive.ql.plan.TableDesc;
import org.apache.hadoop.hive.ql.plan.TezWork;
+import org.apache.hadoop.hive.ql.plan.VectorReduceSinkInfo;
+import org.apache.hadoop.hive.ql.plan.VectorReduceSinkDesc;
+import org.apache.hadoop.hive.ql.plan.VectorGroupByDesc;
import org.apache.hadoop.hive.ql.plan.api.StageType;
import org.apache.hadoop.hive.ql.security.authorization.AuthorizationFactory;
import org.apache.hadoop.hive.ql.session.SessionState;
+import org.apache.hadoop.hive.serde2.Deserializer;
+import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.util.StringUtils;
import org.apache.hive.common.util.AnnotationUtils;
@@ -157,6 +197,54 @@ public class ExplainTask extends Task<ExplainWork> implements Serializable {
return outJSONObject;
}
+ private static String trueCondNameVectorizationEnabled =
+ HiveConf.ConfVars.HIVE_VECTORIZATION_ENABLED.varname + " IS true";
+ private static String falseCondNameVectorizationEnabled =
+ HiveConf.ConfVars.HIVE_VECTORIZATION_ENABLED.varname + " IS false";
+
+ private ImmutablePair<Boolean, JSONObject> outputPlanVectorization(PrintStream out, boolean jsonOutput)
+ throws Exception {
+
+ if (out != null) {
+ out.println("PLAN VECTORIZATION:");
+ }
+
+ JSONObject json = jsonOutput ? new JSONObject(new LinkedHashMap<>()) : null;
+
+ HiveConf hiveConf = queryState.getConf();
+
+ boolean isVectorizationEnabled = HiveConf.getBoolVar(hiveConf,
+ HiveConf.ConfVars.HIVE_VECTORIZATION_ENABLED);
+ String isVectorizationEnabledCondName =
+ (isVectorizationEnabled ?
+ trueCondNameVectorizationEnabled :
+ falseCondNameVectorizationEnabled);
+ List<String> isVectorizationEnabledCondList = Arrays.asList(isVectorizationEnabledCondName);
+
+ if (out != null) {
+ out.print(indentString(2));
+ out.print("enabled: ");
+ out.println(isVectorizationEnabled);
+ out.print(indentString(2));
+ if (!isVectorizationEnabled) {
+ out.print("enabledConditionsNotMet: ");
+ } else {
+ out.print("enabledConditionsMet: ");
+ }
+ out.println(isVectorizationEnabledCondList);
+ }
+ if (jsonOutput) {
+ json.put("enabled", isVectorizationEnabled);
+ if (!isVectorizationEnabled) {
+ json.put("enabledConditionsNotMet", isVectorizationEnabledCondList);
+ } else {
+ json.put("enabledConditionsMet", isVectorizationEnabledCondList);
+ }
+ }
+
+ return new ImmutablePair<Boolean, JSONObject>(isVectorizationEnabled, jsonOutput ? json : null);
+ }
+
public JSONObject getJSONPlan(PrintStream out, ExplainWork work)
throws Exception {
return getJSONPlan(out, work.getRootTasks(), work.getFetchTask(),
@@ -184,26 +272,46 @@ public class ExplainTask extends Task<ExplainWork> implements Serializable {
ordered.add(fetchTask);
}
- JSONObject jsonDependencies = outputDependencies(out, jsonOutput, appendTaskType, ordered);
+ boolean suppressOthersForVectorization = false;
+ if (this.work != null && this.work.isVectorization()) {
+ ImmutablePair<Boolean, JSONObject> planVecPair = outputPlanVectorization(out, jsonOutput);
+
+ if (this.work.isVectorizationOnly()) {
+ // Suppress the STAGES if vectorization is off.
+ suppressOthersForVectorization = !planVecPair.left;
+ }
- if (out != null) {
- out.println();
+ if (out != null) {
+ out.println();
+ }
+
+ if (jsonOutput) {
+ outJSONObject.put("PLAN VECTORIZATION", planVecPair.right);
+ }
}
- if (jsonOutput) {
- outJSONObject.put("STAGE DEPENDENCIES", jsonDependencies);
- }
+ if (!suppressOthersForVectorization) {
+ JSONObject jsonDependencies = outputDependencies(out, jsonOutput, appendTaskType, ordered);
- // Go over all the tasks and dump out the plans
- JSONObject jsonPlan = outputStagePlans(out, ordered,
- jsonOutput, isExtended);
+ if (out != null) {
+ out.println();
+ }
- if (jsonOutput) {
- outJSONObject.put("STAGE PLANS", jsonPlan);
- }
+ if (jsonOutput) {
+ outJSONObject.put("STAGE DEPENDENCIES", jsonDependencies);
+ }
- if (fetchTask != null) {
- fetchTask.setParentTasks(null);
+ // Go over all the tasks and dump out the plans
+ JSONObject jsonPlan = outputStagePlans(out, ordered,
+ jsonOutput, isExtended);
+
+ if (jsonOutput) {
+ outJSONObject.put("STAGE PLANS", jsonPlan);
+ }
+
+ if (fetchTask != null) {
+ fetchTask.setParentTasks(null);
+ }
}
return jsonOutput ? outJSONObject : null;
@@ -602,6 +710,64 @@ public class ExplainTask extends Task<ExplainWork> implements Serializable {
}
}
if (invokeFlag) {
+ Vectorization vectorization = xpl_note.vectorization();
+ if (this.work != null && this.work.isVectorization()) {
+
+ // The EXPLAIN VECTORIZATION option was specified.
+ final boolean desireOnly = this.work.isVectorizationOnly();
+ final VectorizationDetailLevel desiredVecDetailLevel =
+ this.work.isVectorizationDetailLevel();
+
+ switch (vectorization) {
+ case NON_VECTORIZED:
+ // Display all non-vectorized leaf objects unless ONLY.
+ if (desireOnly) {
+ invokeFlag = false;
+ }
+ break;
+ case SUMMARY:
+ case OPERATOR:
+ case EXPRESSION:
+ case DETAIL:
+ if (vectorization.rank < desiredVecDetailLevel.rank) {
+ // This detail not desired.
+ invokeFlag = false;
+ }
+ break;
+ case SUMMARY_PATH:
+ case OPERATOR_PATH:
+ if (desireOnly) {
+ if (vectorization.rank < desiredVecDetailLevel.rank) {
+ // Suppress headers and all objects below.
+ invokeFlag = false;
+ }
+ }
+ break;
+ default:
+ throw new RuntimeException("Unknown EXPLAIN vectorization " + vectorization);
+ }
+ } else {
+ // Do not display vectorization objects.
+ switch (vectorization) {
+ case SUMMARY:
+ case OPERATOR:
+ case EXPRESSION:
+ case DETAIL:
+ invokeFlag = false;
+ break;
+ case NON_VECTORIZED:
+ // No action.
+ break;
+ case SUMMARY_PATH:
+ case OPERATOR_PATH:
+ // Always include headers since they contain non-vectorized objects, too.
+ break;
+ default:
+ throw new RuntimeException("Unknown EXPLAIN vectorization " + vectorization);
+ }
+ }
+ }
+ if (invokeFlag) {
keyJSONObject = xpl_note.displayName();
if (out != null) {
out.print(indentString(indent));
@@ -675,6 +841,64 @@ public class ExplainTask extends Task<ExplainWork> implements Serializable {
}
}
if (invokeFlag) {
+ Vectorization vectorization = xpl_note.vectorization();
+ if (this.work != null && this.work.isVectorization()) {
+
+ // The EXPLAIN VECTORIZATION option was specified.
+ final boolean desireOnly = this.work.isVectorizationOnly();
+ final VectorizationDetailLevel desiredVecDetailLevel =
+ this.work.isVectorizationDetailLevel();
+
+ switch (vectorization) {
+ case NON_VECTORIZED:
+ // Display all non-vectorized leaf objects unless ONLY.
+ if (desireOnly) {
+ invokeFlag = false;
+ }
+ break;
+ case SUMMARY:
+ case OPERATOR:
+ case EXPRESSION:
+ case DETAIL:
+ if (vectorization.rank < desiredVecDetailLevel.rank) {
+ // This detail not desired.
+ invokeFlag = false;
+ }
+ break;
+ case SUMMARY_PATH:
+ case OPERATOR_PATH:
+ if (desireOnly) {
+ if (vectorization.rank < desiredVecDetailLevel.rank) {
+ // Suppress headers and all objects below.
+ invokeFlag = false;
+ }
+ }
+ break;
+ default:
+ throw new RuntimeException("Unknown EXPLAIN vectorization " + vectorization);
+ }
+ } else {
+ // Do not display vectorization objects.
+ switch (vectorization) {
+ case SUMMARY:
+ case OPERATOR:
+ case EXPRESSION:
+ case DETAIL:
+ invokeFlag = false;
+ break;
+ case NON_VECTORIZED:
+ // No action.
+ break;
+ case SUMMARY_PATH:
+ case OPERATOR_PATH:
+ // Always include headers since they contain non-vectorized objects, too.
+ break;
+ default:
+ throw new RuntimeException("Unknown EXPLAIN vectorization " + vectorization);
+ }
+ }
+ }
+ if (invokeFlag) {
Object val = null;
try {
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorFactory.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorFactory.java
index 038b96c..af1fa66 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorFactory.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorFactory.java
@@ -41,6 +41,8 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorizationContext;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.optimizer.spark.SparkPartitionPruningSinkDesc;
import org.apache.hadoop.hive.ql.parse.spark.SparkPartitionPruningSinkOperator;
+import org.apache.hadoop.hive.ql.plan.AbstractOperatorDesc;
+import org.apache.hadoop.hive.ql.plan.AbstractVectorDesc;
import org.apache.hadoop.hive.ql.plan.AppMasterEventDesc;
import org.apache.hadoop.hive.ql.plan.CollectDesc;
import org.apache.hadoop.hive.ql.plan.CommonMergeJoinDesc;
@@ -73,6 +75,7 @@ import org.apache.hadoop.hive.ql.plan.SparkHashTableSinkDesc;
import org.apache.hadoop.hive.ql.plan.TableScanDesc;
import org.apache.hadoop.hive.ql.plan.UDTFDesc;
import org.apache.hadoop.hive.ql.plan.UnionDesc;
+import org.apache.hadoop.hive.ql.plan.VectorDesc;
import com.google.common.base.Preconditions;
@@ -142,6 +145,8 @@ public final class OperatorFactory {
Class<? extends Operator<?>> opClass, CompilationOpContext cContext, T conf,
VectorizationContext vContext) throws HiveException {
try {
+ VectorDesc vectorDesc = ((AbstractOperatorDesc) conf).getVectorDesc();
+ vectorDesc.setVectorOp(opClass);
Operator<T> op = (Operator<T>) opClass.getDeclaredConstructor(
CompilationOpContext.class, VectorizationContext.class, OperatorDesc.class)
.newInstance(cContext, vContext, conf);
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/java/org/apache/hadoop/hive/ql/exec/SelectOperator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/SelectOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/SelectOperator.java
index a30c771..94af097 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/SelectOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/SelectOperator.java
@@ -201,5 +201,4 @@ public class SelectOperator extends Operator<SelectDesc> implements Serializable
return true;
}
-
}
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinKey.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinKey.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinKey.java
index 1cd9021..63e4802 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinKey.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinKey.java
@@ -93,9 +93,7 @@ public abstract class MapJoinKey {
return true;
}
- public static boolean isSupportedField(String typeName) {
- TypeInfo typeInfo = TypeInfoUtils.getTypeInfoFromTypeString(typeName);
-
+ public static boolean isSupportedField(TypeInfo typeInfo) {
if (typeInfo.getCategory() != Category.PRIMITIVE) return false; // not supported
PrimitiveTypeInfo primitiveTypeInfo = (PrimitiveTypeInfo) typeInfo;
PrimitiveCategory pc = primitiveTypeInfo.getPrimitiveCategory();
@@ -103,6 +101,11 @@ public abstract class MapJoinKey {
return true;
}
+ public static boolean isSupportedField(String typeName) {
+ TypeInfo typeInfo = TypeInfoUtils.getTypeInfoFromTypeString(typeName);
+ return isSupportedField(typeInfo);
+ }
+
public static MapJoinKey readFromVector(Output output, MapJoinKey key, Object[] keyObject,
List<ObjectInspector> keyOIs, boolean mayReuseKey) throws HiveException {
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/HashTableLoader.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/HashTableLoader.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/HashTableLoader.java
index 1634f42..3cf6561 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/HashTableLoader.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/HashTableLoader.java
@@ -75,7 +75,7 @@ public class HashTableLoader implements org.apache.hadoop.hive.ql.exec.HashTable
this.desc = joinOp.getConf();
if (desc.getVectorMode() && HiveConf.getBoolVar(
hconf, HiveConf.ConfVars.HIVE_VECTORIZATION_MAPJOIN_NATIVE_FAST_HASHTABLE_ENABLED)) {
- VectorMapJoinDesc vectorDesc = desc.getVectorDesc();
+ VectorMapJoinDesc vectorDesc = (VectorMapJoinDesc) desc.getVectorDesc();
useFastContainer = vectorDesc != null && vectorDesc.hashTableImplementationType() ==
VectorMapJoinDesc.HashTableImplementationType.FAST;
}
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnMapping.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnMapping.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnMapping.java
index c4b95c3..c890674 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnMapping.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnMapping.java
@@ -20,6 +20,8 @@ package org.apache.hadoop.hive.ql.exec.vector;
import java.util.Arrays;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
+
/**
* This class collects column information for copying a row from one VectorizedRowBatch to
* same/another batch.
@@ -30,7 +32,7 @@ public abstract class VectorColumnMapping {
protected int[] sourceColumns;
protected int[] outputColumns;
- protected String[] typeNames;
+ protected TypeInfo[] typeInfos;
protected VectorColumnOrderedMap vectorColumnMapping;
@@ -38,7 +40,7 @@ public abstract class VectorColumnMapping {
this.vectorColumnMapping = new VectorColumnOrderedMap(name);
}
- public abstract void add(int sourceColumn, int outputColumn, String typeName);
+ public abstract void add(int sourceColumn, int outputColumn, TypeInfo typeInfo);
public abstract void finalize();
@@ -54,8 +56,8 @@ public abstract class VectorColumnMapping {
return outputColumns;
}
- public String[] getTypeNames() {
- return typeNames;
+ public TypeInfo[] getTypeInfos() {
+ return typeInfos;
}
@Override
@@ -65,7 +67,7 @@ public abstract class VectorColumnMapping {
sb.append(", ");
sb.append("output columns: " + Arrays.toString(outputColumns));
sb.append(", ");
- sb.append("type names: " + Arrays.toString(typeNames));
+ sb.append("type infos: " + Arrays.toString(typeInfos));
return sb.toString();
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/fcb57100/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnOrderedMap.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnOrderedMap.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnOrderedMap.java
index 0e6014b..97d55f5 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnOrderedMap.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnOrderedMap.java
@@ -23,8 +23,10 @@ import java.util.Map;
import java.util.TreeMap;
import org.apache.commons.lang.ArrayUtils;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
/**
* This class collects column information for mapping vector columns, including the hive type name.
@@ -43,17 +45,17 @@ public class VectorColumnOrderedMap {
private class Value {
int valueColumn;
- String typeName;
+ TypeInfo typeInfo;
- Value(int valueColumn, String typeName) {
+ Value(int valueColumn, TypeInfo typeInfo) {
this.valueColumn = valueColumn;
- this.typeName = typeName;
+ this.typeInfo = typeInfo;
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("(value column: " + valueColumn);
- sb.append(", type name: " + typeName + ")");
+ sb.append(", type info: " + typeInfo.toString() + ")");
return sb.toString();
}
}
@@ -62,12 +64,12 @@ public class VectorColumnOrderedMap {
private final int[] orderedColumns;
private final int[] valueColumns;
- private final String[] typeNames;
+ private final TypeInfo[] typeInfos;
- Mapping(int[] orderedColumns, int[] valueColumns, String[] typeNames) {
+ Mapping(int[] orderedColumns, int[] valueColumns, TypeInfo[] typeInfos) {
this.orderedColumns = orderedColumns;
this.valueColumns = valueColumns;
- this.typeNames = typeNames;
+ this.typeInfos = typeInfos;
}
public int getCount() {
@@ -82,8 +84,8 @@ public class VectorColumnOrderedMap {
return valueColumns;
}
- public String[] getTypeNames() {
- return typeNames;
+ public TypeInfo[] getTypeInfos() {
+ return typeInfos;
}
}
@@ -92,14 +94,14 @@ public class VectorColumnOrderedMap {
orderedTreeMap = new TreeMap<Integer, Value>();
}
- public void add(int orderedColumn, int valueColumn, String typeName) {
+ public void add(int orderedColumn, int valueColumn, TypeInfo typeInfo) {
if (orderedTreeMap.containsKey(orderedColumn)) {
throw new RuntimeException(
name + " duplicate column " + orderedColumn +
" in ordered column map " + orderedTreeMap.toString() +
- " when adding value column " + valueColumn + ", type " + typeName);
+ " when adding value column " + valueColumn + ", type into " + typeInfo.toString());
}
- orderedTreeMap.put(orderedColumn, new Value(valueColumn, typeName));
+ orderedTreeMap.put(orderedColumn, new Value(valueColumn, typeInfo));
}
public boolean orderedColumnsContain(int orderedColumn) {
@@ -109,17 +111,16 @@ public class VectorColumnOrderedMap {
public Mapping getMapping() {
ArrayList<Integer> orderedColumns = new ArrayList<Integer>();
ArrayList<Integer> valueColumns = new ArrayList<Integer>();
- ArrayList<String> typeNames = new ArrayList<String>();
+ ArrayList<TypeInfo> typeInfos = new ArrayList<TypeInfo>();
for (Map.Entry<Integer, Value> entry : orderedTreeMap.entrySet()) {
orderedColumns.add(entry.getKey());
Value value = entry.getValue();
valueColumns.add(value.valueColumn);
- typeNames.add(value.typeName);
+ typeInfos.add(value.typeInfo);
}
return new Mapping(
ArrayUtils.toPrimitive(orderedColumns.toArray(new Integer[0])),
ArrayUtils.toPrimitive(valueColumns.toArray(new Integer[0])),
- typeNames.toArray(new String[0]));
-
+ typeInfos.toArray(new TypeInfo[0]));
}
}