Revert "Revert "HIVE-11394: Enhance EXPLAIN display for vectorization (Matt McCline...
authorMatt McCline <mmccline@hortonworks.com>
Fri, 14 Oct 2016 22:12:02 +0000 (15:12 -0700)
committerMatt McCline <mmccline@hortonworks.com>
Fri, 14 Oct 2016 22:12:02 +0000 (15:12 -0700)
This reverts commit aed21d0b7c83058f77d796f63d699b5bd0d77de1.

755 files changed:
common/src/java/org/apache/hive/common/util/DateUtils.java
ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt [deleted file]
ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt [deleted file]
ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnCompareScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnDivideColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnDivideColumnDecimal.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnDivideScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnDivideScalarDecimal.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryFunc.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnUnaryMinus.txt
ql/src/gen/vectorization/ExpressionTemplates/DateColumnArithmeticIntervalYearMonthColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/DateColumnArithmeticIntervalYearMonthScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/DateColumnArithmeticTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/DateColumnArithmeticTimestampScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/DateScalarArithmeticIntervalYearMonthColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/DateScalarArithmeticTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnBetween.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnCompareDecimalColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalColumnCompareDecimalScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterDecimalScalarCompareDecimalColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterLongDoubleColumnCompareTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterLongDoubleScalarCompareTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterScalarCompareColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterStringColumnBetween.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareStringGroupScalarBase.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnBetween.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareLongDoubleColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareLongDoubleScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampColumnCompareTimestampScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareLongDoubleColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterTimestampScalarCompareTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterTruncStringColumnBetween.txt
ql/src/gen/vectorization/ExpressionTemplates/IfExprColumnScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/IfExprScalarColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/IfExprScalarScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticDateColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticDateScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthColumnArithmeticTimestampScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthScalarArithmeticDateColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/IntervalYearMonthScalarArithmeticTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/LongDoubleColumnCompareTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/LongDoubleColumnCompareTimestampScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/LongDoubleScalarCompareTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnDecimal.txt
ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt [deleted file]
ql/src/gen/vectorization/ExpressionTemplates/ScalarCompareColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/ScalarDivideColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/ScalarDivideColumnDecimal.txt
ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareStringGroupScalarBase.txt
ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticDateColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticDateScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticIntervalYearMonthColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticIntervalYearMonthScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnArithmeticTimestampScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareLongDoubleColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareLongDoubleScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampColumnCompareTimestampScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticDateColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticIntervalYearMonthColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarArithmeticTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/TimestampScalarCompareTimestampColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/TruncStringScalarCompareStringGroupColumn.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFAvg.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMax.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxDecimal.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxIntervalDayTime.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxString.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxTimestamp.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFSum.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFVar.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFVarDecimal.txt
ql/src/java/org/apache/hadoop/hive/ql/exec/ExplainTask.java
ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorFactory.java
ql/src/java/org/apache/hadoop/hive/ql/exec/SelectOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinKey.java
ql/src/java/org/apache/hadoop/hive/ql/exec/spark/HashTableLoader.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnMapping.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnOrderedMap.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnOutputMapping.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnSourceMapping.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorCopyRow.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorFilterOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorGroupByOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSelectOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContextRegion.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/AbstractFilterStringColLikeStringScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToCharViaLongToChar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastBooleanToVarCharViaLongToVarChar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToChar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToVarChar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToChar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToDecimal.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToVarChar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDoubleToTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToChar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToDate.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToVarChar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastMillisecondsLongToTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToChar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringGroupToVarChar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringToDate.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringToDecimal.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringToIntervalDayTime.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastStringToIntervalYearMonth.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToBoolean.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToDouble.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToLong.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ColAndCol.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ColOrCol.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ConstantVectorExpression.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateColSubtractDateColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateColSubtractDateScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateScalarSubtractDateColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DecimalColumnInList.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DecimalToStringUnaryUDF.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DoubleColumnInList.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterColAndScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterColOrScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterDecimalColumnInList.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterDoubleColumnInList.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprAndExpr.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterExprOrExpr.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterLongColumnInList.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterScalarAndColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterScalarOrColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStringColumnInList.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterStructColumnInList.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FilterTimestampColumnInList.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncDecimalToDouble.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncDecimalToLong.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncDecimalToTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncDoubleToDecimal.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncLongToDecimal.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncLongToString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRoundWithNumDigitsDecimalToDecimal.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncTimestampToDecimal.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncTimestampToLong.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IdentityExpression.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprDoubleColumnDoubleColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprIntervalDayTimeColumnColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprIntervalDayTimeColumnScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprIntervalDayTimeScalarColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprIntervalDayTimeScalarScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprLongColumnLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprStringGroupColumnStringGroupColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprStringGroupColumnStringScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprStringScalarStringGroupColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprStringScalarStringScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprTimestampColumnColumnBase.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprTimestampColumnScalarBase.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprTimestampScalarColumnBase.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprTimestampScalarScalarBase.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IsNotNull.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IsNull.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColDivideLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColDivideLongScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColEqualLongScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterEqualLongScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColGreaterLongScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessEqualLongScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColLessLongScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColNotEqualLongScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongColumnInList.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongScalarDivideLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongScalarEqualLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongScalarGreaterEqualLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongScalarGreaterLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongScalarLessEqualLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongScalarLessLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongScalarNotEqualLongColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/LongToStringUnaryUDF.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathFuncDoubleToDouble.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathFuncLongToDouble.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/MathFuncLongToLong.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/NotCol.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/PosModDoubleToDouble.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/PosModLongToLong.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/RoundWithNumDigitsDoubleToDouble.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/SelectColumnIsFalse.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/SelectColumnIsNotNull.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/SelectColumnIsNull.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/SelectColumnIsTrue.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/SelectStringColLikeStringScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringColumnInList.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringGroupColConcatStringScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringGroupConcatColCol.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringLength.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringScalarConcatStringGroupCol.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringSubstrColStart.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringSubstrColStartLen.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringUnaryUDF.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringUnaryUDFDirect.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StructColumnInList.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/TimestampColumnInList.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/TimestampToStringUnaryUDF.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorCoalesce.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorElt.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorExpression.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateAddColCol.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateAddColScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateAddScalarCol.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffColCol.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffColScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateDiffScalarCol.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldDate.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFTimestampFieldTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorAggregateExpression.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgDecimal.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFAvgTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCount.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountMerge.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFCountStar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFStdPopTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFStdSampTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFSumDecimal.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFVarPopTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFVarSampTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinCommonOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinInnerBigOnlyLongOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinInnerBigOnlyMultiKeyOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinInnerBigOnlyStringOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinInnerLongOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinInnerMultiKeyOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinInnerStringOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinLeftSemiLongOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinLeftSemiMultiKeyOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinLeftSemiStringOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinOuterLongOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinOuterMultiKeyOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinOuterStringOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/fast/VectorMapJoinFastTableContainer.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/optimized/VectorMapJoinOptimizedCreateHashTable.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkCommonOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/udf/VectorUDFAdaptor.java
ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/VectorizerReason.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainConfiguration.java
ql/src/java/org/apache/hadoop/hive/ql/parse/ExplainSemanticAnalyzer.java
ql/src/java/org/apache/hadoop/hive/ql/parse/HiveLexer.g
ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
ql/src/java/org/apache/hadoop/hive/ql/plan/AbstractOperatorDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/AbstractVectorDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/AppMasterEventDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/BaseWork.java
ql/src/java/org/apache/hadoop/hive/ql/plan/Explain.java
ql/src/java/org/apache/hadoop/hive/ql/plan/ExplainWork.java
ql/src/java/org/apache/hadoop/hive/ql/plan/FetchWork.java
ql/src/java/org/apache/hadoop/hive/ql/plan/FileSinkDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/FilterDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/GroupByDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/HashTableSinkDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/LimitDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/MapJoinDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/MapWork.java
ql/src/java/org/apache/hadoop/hive/ql/plan/MapredLocalWork.java
ql/src/java/org/apache/hadoop/hive/ql/plan/MapredWork.java
ql/src/java/org/apache/hadoop/hive/ql/plan/OperatorExplainVectorization.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/plan/ReduceSinkDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/ReduceWork.java
ql/src/java/org/apache/hadoop/hive/ql/plan/SelectDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/SparkHashTableSinkDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/SparkWork.java
ql/src/java/org/apache/hadoop/hive/ql/plan/TableScanDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/TezWork.java
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorAppMasterEventDesc.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorFileSinkDesc.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorFilterDesc.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorGroupByDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorLimitDesc.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorMapJoinDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorMapJoinInfo.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorReduceSinkDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorSMBJoinDesc.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorSelectDesc.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorSparkHashTableSinkDesc.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorTableScanDesc.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorizationCondition.java [new file with mode: 0644]
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorFilterOperator.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorGroupByOperator.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSelectOperator.java
ql/src/test/org/apache/hadoop/hive/ql/optimizer/physical/TestVectorizer.java
ql/src/test/queries/clientpositive/schema_evol_orc_vec_part.q
ql/src/test/queries/clientpositive/schema_evol_orc_vec_part_all_complex.q
ql/src/test/queries/clientpositive/schema_evol_orc_vec_part_all_primitive.q
ql/src/test/queries/clientpositive/schema_evol_orc_vec_table.q
ql/src/test/queries/clientpositive/schema_evol_text_vec_part.q
ql/src/test/queries/clientpositive/schema_evol_text_vec_part_all_complex.q
ql/src/test/queries/clientpositive/schema_evol_text_vec_part_all_primitive.q
ql/src/test/queries/clientpositive/schema_evol_text_vec_table.q
ql/src/test/queries/clientpositive/schema_evol_text_vecrow_part.q
ql/src/test/queries/clientpositive/schema_evol_text_vecrow_part_all_complex.q
ql/src/test/queries/clientpositive/schema_evol_text_vecrow_part_all_primitive.q
ql/src/test/queries/clientpositive/schema_evol_text_vecrow_table.q
ql/src/test/queries/clientpositive/vector_adaptor_usage_mode.q
ql/src/test/queries/clientpositive/vector_aggregate_9.q
ql/src/test/queries/clientpositive/vector_aggregate_without_gby.q
ql/src/test/queries/clientpositive/vector_auto_smb_mapjoin_14.q
ql/src/test/queries/clientpositive/vector_between_columns.q
ql/src/test/queries/clientpositive/vector_between_in.q
ql/src/test/queries/clientpositive/vector_binary_join_groupby.q
ql/src/test/queries/clientpositive/vector_bround.q
ql/src/test/queries/clientpositive/vector_bucket.q
ql/src/test/queries/clientpositive/vector_cast_constant.q
ql/src/test/queries/clientpositive/vector_char_2.q
ql/src/test/queries/clientpositive/vector_char_4.q
ql/src/test/queries/clientpositive/vector_char_cast.q
ql/src/test/queries/clientpositive/vector_char_mapjoin1.q
ql/src/test/queries/clientpositive/vector_char_simple.q
ql/src/test/queries/clientpositive/vector_coalesce.q
ql/src/test/queries/clientpositive/vector_coalesce_2.q
ql/src/test/queries/clientpositive/vector_complex_all.q
ql/src/test/queries/clientpositive/vector_complex_join.q
ql/src/test/queries/clientpositive/vector_count.q
ql/src/test/queries/clientpositive/vector_count_distinct.q
ql/src/test/queries/clientpositive/vector_data_types.q
ql/src/test/queries/clientpositive/vector_date_1.q
ql/src/test/queries/clientpositive/vector_decimal_1.q
ql/src/test/queries/clientpositive/vector_decimal_10_0.q
ql/src/test/queries/clientpositive/vector_decimal_2.q
ql/src/test/queries/clientpositive/vector_decimal_3.q
ql/src/test/queries/clientpositive/vector_decimal_4.q
ql/src/test/queries/clientpositive/vector_decimal_5.q
ql/src/test/queries/clientpositive/vector_decimal_6.q
ql/src/test/queries/clientpositive/vector_decimal_aggregate.q
ql/src/test/queries/clientpositive/vector_decimal_cast.q
ql/src/test/queries/clientpositive/vector_decimal_expressions.q
ql/src/test/queries/clientpositive/vector_decimal_mapjoin.q
ql/src/test/queries/clientpositive/vector_decimal_math_funcs.q
ql/src/test/queries/clientpositive/vector_decimal_precision.q
ql/src/test/queries/clientpositive/vector_decimal_round.q
ql/src/test/queries/clientpositive/vector_decimal_round_2.q
ql/src/test/queries/clientpositive/vector_decimal_trailing.q
ql/src/test/queries/clientpositive/vector_decimal_udf2.q
ql/src/test/queries/clientpositive/vector_distinct_2.q
ql/src/test/queries/clientpositive/vector_elt.q
ql/src/test/queries/clientpositive/vector_empty_where.q
ql/src/test/queries/clientpositive/vector_groupby4.q
ql/src/test/queries/clientpositive/vector_groupby6.q
ql/src/test/queries/clientpositive/vector_groupby_3.q
ql/src/test/queries/clientpositive/vector_groupby_mapjoin.q
ql/src/test/queries/clientpositive/vector_groupby_reduce.q
ql/src/test/queries/clientpositive/vector_grouping_sets.q
ql/src/test/queries/clientpositive/vector_if_expr.q
ql/src/test/queries/clientpositive/vector_include_no_sel.q
ql/src/test/queries/clientpositive/vector_inner_join.q
ql/src/test/queries/clientpositive/vector_interval_1.q
ql/src/test/queries/clientpositive/vector_interval_2.q
ql/src/test/queries/clientpositive/vector_interval_arithmetic.q
ql/src/test/queries/clientpositive/vector_interval_mapjoin.q
ql/src/test/queries/clientpositive/vector_join.q
ql/src/test/queries/clientpositive/vector_join30.q
ql/src/test/queries/clientpositive/vector_join_part_col_char.q
ql/src/test/queries/clientpositive/vector_left_outer_join.q
ql/src/test/queries/clientpositive/vector_left_outer_join2.q
ql/src/test/queries/clientpositive/vector_leftsemi_mapjoin.q
ql/src/test/queries/clientpositive/vector_mapjoin_reduce.q
ql/src/test/queries/clientpositive/vector_mr_diff_schema_alias.q
ql/src/test/queries/clientpositive/vector_multi_insert.q
ql/src/test/queries/clientpositive/vector_non_constant_in_expr.q
ql/src/test/queries/clientpositive/vector_non_string_partition.q
ql/src/test/queries/clientpositive/vector_null_projection.q
ql/src/test/queries/clientpositive/vector_nullsafe_join.q
ql/src/test/queries/clientpositive/vector_number_compare_projection.q
ql/src/test/queries/clientpositive/vector_nvl.q
ql/src/test/queries/clientpositive/vector_orderby_5.q
ql/src/test/queries/clientpositive/vector_outer_join0.q
ql/src/test/queries/clientpositive/vector_outer_join1.q
ql/src/test/queries/clientpositive/vector_outer_join2.q
ql/src/test/queries/clientpositive/vector_outer_join3.q
ql/src/test/queries/clientpositive/vector_outer_join4.q
ql/src/test/queries/clientpositive/vector_outer_join5.q
ql/src/test/queries/clientpositive/vector_outer_join6.q
ql/src/test/queries/clientpositive/vector_partition_diff_num_cols.q
ql/src/test/queries/clientpositive/vector_partitioned_date_time.q
ql/src/test/queries/clientpositive/vector_partitioned_date_time_win.q
ql/src/test/queries/clientpositive/vector_reduce1.q
ql/src/test/queries/clientpositive/vector_reduce2.q
ql/src/test/queries/clientpositive/vector_reduce3.q
ql/src/test/queries/clientpositive/vector_reduce_groupby_decimal.q
ql/src/test/queries/clientpositive/vector_string_concat.q
ql/src/test/queries/clientpositive/vector_string_decimal.q
ql/src/test/queries/clientpositive/vector_struct_in.q
ql/src/test/queries/clientpositive/vector_tablesample_rows.q
ql/src/test/queries/clientpositive/vector_udf2.q
ql/src/test/queries/clientpositive/vector_udf3.q
ql/src/test/queries/clientpositive/vector_varchar_4.q
ql/src/test/queries/clientpositive/vector_varchar_mapjoin1.q
ql/src/test/queries/clientpositive/vector_varchar_simple.q
ql/src/test/queries/clientpositive/vector_when_case_null.q
ql/src/test/queries/clientpositive/vectorization_0.q
ql/src/test/queries/clientpositive/vectorization_1.q
ql/src/test/queries/clientpositive/vectorization_10.q
ql/src/test/queries/clientpositive/vectorization_11.q
ql/src/test/queries/clientpositive/vectorization_12.q
ql/src/test/queries/clientpositive/vectorization_13.q
ql/src/test/queries/clientpositive/vectorization_14.q
ql/src/test/queries/clientpositive/vectorization_15.q
ql/src/test/queries/clientpositive/vectorization_16.q
ql/src/test/queries/clientpositive/vectorization_17.q
ql/src/test/queries/clientpositive/vectorization_2.q
ql/src/test/queries/clientpositive/vectorization_3.q
ql/src/test/queries/clientpositive/vectorization_4.q
ql/src/test/queries/clientpositive/vectorization_5.q
ql/src/test/queries/clientpositive/vectorization_6.q
ql/src/test/queries/clientpositive/vectorization_7.q
ql/src/test/queries/clientpositive/vectorization_8.q
ql/src/test/queries/clientpositive/vectorization_9.q
ql/src/test/queries/clientpositive/vectorization_decimal_date.q
ql/src/test/queries/clientpositive/vectorization_div0.q
ql/src/test/queries/clientpositive/vectorization_limit.q
ql/src/test/queries/clientpositive/vectorization_nested_udf.q
ql/src/test/queries/clientpositive/vectorization_not.q
ql/src/test/queries/clientpositive/vectorization_offset_limit.q
ql/src/test/queries/clientpositive/vectorization_part.q
ql/src/test/queries/clientpositive/vectorization_part_project.q
ql/src/test/queries/clientpositive/vectorization_part_varchar.q
ql/src/test/queries/clientpositive/vectorization_pushdown.q
ql/src/test/queries/clientpositive/vectorization_short_regress.q
ql/src/test/queries/clientpositive/vectorized_bucketmapjoin1.q
ql/src/test/queries/clientpositive/vectorized_case.q
ql/src/test/queries/clientpositive/vectorized_casts.q
ql/src/test/queries/clientpositive/vectorized_context.q
ql/src/test/queries/clientpositive/vectorized_date_funcs.q
ql/src/test/queries/clientpositive/vectorized_distinct_gby.q
ql/src/test/queries/clientpositive/vectorized_dynamic_partition_pruning.q
ql/src/test/queries/clientpositive/vectorized_mapjoin.q
ql/src/test/queries/clientpositive/vectorized_mapjoin2.q
ql/src/test/queries/clientpositive/vectorized_math_funcs.q
ql/src/test/queries/clientpositive/vectorized_nested_mapjoin.q
ql/src/test/queries/clientpositive/vectorized_parquet.q
ql/src/test/queries/clientpositive/vectorized_parquet_types.q
ql/src/test/queries/clientpositive/vectorized_ptf.q
ql/src/test/queries/clientpositive/vectorized_shufflejoin.q
ql/src/test/queries/clientpositive/vectorized_string_funcs.q
ql/src/test/queries/clientpositive/vectorized_timestamp.q
ql/src/test/queries/clientpositive/vectorized_timestamp_funcs.q
ql/src/test/queries/clientpositive/vectorized_timestamp_ints_casts.q
ql/src/test/results/clientpositive/llap/schema_evol_orc_vec_part.q.out
ql/src/test/results/clientpositive/llap/schema_evol_orc_vec_part_all_complex.q.out
ql/src/test/results/clientpositive/llap/schema_evol_orc_vec_part_all_primitive.q.out
ql/src/test/results/clientpositive/llap/schema_evol_orc_vec_table.q.out
ql/src/test/results/clientpositive/llap/schema_evol_text_vec_part.q.out
ql/src/test/results/clientpositive/llap/schema_evol_text_vec_part_all_complex.q.out
ql/src/test/results/clientpositive/llap/schema_evol_text_vec_part_all_primitive.q.out
ql/src/test/results/clientpositive/llap/schema_evol_text_vec_table.q.out
ql/src/test/results/clientpositive/llap/schema_evol_text_vecrow_part.q.out
ql/src/test/results/clientpositive/llap/schema_evol_text_vecrow_part_all_complex.q.out
ql/src/test/results/clientpositive/llap/schema_evol_text_vecrow_part_all_primitive.q.out
ql/src/test/results/clientpositive/llap/schema_evol_text_vecrow_table.q.out
ql/src/test/results/clientpositive/llap/vector_aggregate_9.q.out
ql/src/test/results/clientpositive/llap/vector_aggregate_without_gby.q.out
ql/src/test/results/clientpositive/llap/vector_auto_smb_mapjoin_14.q.out
ql/src/test/results/clientpositive/llap/vector_between_columns.q.out
ql/src/test/results/clientpositive/llap/vector_between_in.q.out
ql/src/test/results/clientpositive/llap/vector_binary_join_groupby.q.out
ql/src/test/results/clientpositive/llap/vector_bround.q.out
ql/src/test/results/clientpositive/llap/vector_bucket.q.out
ql/src/test/results/clientpositive/llap/vector_cast_constant.q.out
ql/src/test/results/clientpositive/llap/vector_char_2.q.out
ql/src/test/results/clientpositive/llap/vector_char_4.q.out
ql/src/test/results/clientpositive/llap/vector_char_mapjoin1.q.out
ql/src/test/results/clientpositive/llap/vector_char_simple.q.out
ql/src/test/results/clientpositive/llap/vector_coalesce.q.out
ql/src/test/results/clientpositive/llap/vector_coalesce_2.q.out
ql/src/test/results/clientpositive/llap/vector_complex_all.q.out
ql/src/test/results/clientpositive/llap/vector_complex_join.q.out
ql/src/test/results/clientpositive/llap/vector_count.q.out
ql/src/test/results/clientpositive/llap/vector_count_distinct.q.out
ql/src/test/results/clientpositive/llap/vector_data_types.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_aggregate.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_cast.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_expressions.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_mapjoin.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_math_funcs.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_precision.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_round.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_round_2.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_udf2.q.out
ql/src/test/results/clientpositive/llap/vector_distinct_2.q.out
ql/src/test/results/clientpositive/llap/vector_elt.q.out
ql/src/test/results/clientpositive/llap/vector_groupby4.q.out
ql/src/test/results/clientpositive/llap/vector_groupby6.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_3.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_mapjoin.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_reduce.q.out
ql/src/test/results/clientpositive/llap/vector_grouping_sets.q.out
ql/src/test/results/clientpositive/llap/vector_if_expr.q.out
ql/src/test/results/clientpositive/llap/vector_include_no_sel.q.out
ql/src/test/results/clientpositive/llap/vector_inner_join.q.out
ql/src/test/results/clientpositive/llap/vector_interval_1.q.out
ql/src/test/results/clientpositive/llap/vector_interval_2.q.out
ql/src/test/results/clientpositive/llap/vector_interval_arithmetic.q.out
ql/src/test/results/clientpositive/llap/vector_interval_mapjoin.q.out
ql/src/test/results/clientpositive/llap/vector_join30.q.out
ql/src/test/results/clientpositive/llap/vector_join_part_col_char.q.out
ql/src/test/results/clientpositive/llap/vector_left_outer_join.q.out
ql/src/test/results/clientpositive/llap/vector_left_outer_join2.q.out
ql/src/test/results/clientpositive/llap/vector_leftsemi_mapjoin.q.out
ql/src/test/results/clientpositive/llap/vector_mapjoin_reduce.q.out
ql/src/test/results/clientpositive/llap/vector_mr_diff_schema_alias.q.out
ql/src/test/results/clientpositive/llap/vector_multi_insert.q.out
ql/src/test/results/clientpositive/llap/vector_null_projection.q.out
ql/src/test/results/clientpositive/llap/vector_nullsafe_join.q.out
ql/src/test/results/clientpositive/llap/vector_number_compare_projection.q.out
ql/src/test/results/clientpositive/llap/vector_nvl.q.out
ql/src/test/results/clientpositive/llap/vector_orderby_5.q.out
ql/src/test/results/clientpositive/llap/vector_outer_join0.q.out
ql/src/test/results/clientpositive/llap/vector_outer_join1.q.out
ql/src/test/results/clientpositive/llap/vector_outer_join2.q.out
ql/src/test/results/clientpositive/llap/vector_outer_join3.q.out
ql/src/test/results/clientpositive/llap/vector_outer_join4.q.out
ql/src/test/results/clientpositive/llap/vector_outer_join5.q.out
ql/src/test/results/clientpositive/llap/vector_outer_join6.q.out
ql/src/test/results/clientpositive/llap/vector_partition_diff_num_cols.q.out
ql/src/test/results/clientpositive/llap/vector_partitioned_date_time.q.out
ql/src/test/results/clientpositive/llap/vector_reduce1.q.out
ql/src/test/results/clientpositive/llap/vector_reduce2.q.out
ql/src/test/results/clientpositive/llap/vector_reduce3.q.out
ql/src/test/results/clientpositive/llap/vector_reduce_groupby_decimal.q.out
ql/src/test/results/clientpositive/llap/vector_string_concat.q.out
ql/src/test/results/clientpositive/llap/vector_struct_in.q.out
ql/src/test/results/clientpositive/llap/vector_varchar_4.q.out
ql/src/test/results/clientpositive/llap/vector_varchar_mapjoin1.q.out
ql/src/test/results/clientpositive/llap/vector_varchar_simple.q.out
ql/src/test/results/clientpositive/llap/vector_when_case_null.q.out
ql/src/test/results/clientpositive/llap/vectorization_0.q.out
ql/src/test/results/clientpositive/llap/vectorization_13.q.out
ql/src/test/results/clientpositive/llap/vectorization_14.q.out
ql/src/test/results/clientpositive/llap/vectorization_15.q.out
ql/src/test/results/clientpositive/llap/vectorization_16.q.out
ql/src/test/results/clientpositive/llap/vectorization_17.q.out
ql/src/test/results/clientpositive/llap/vectorization_7.q.out
ql/src/test/results/clientpositive/llap/vectorization_8.q.out
ql/src/test/results/clientpositive/llap/vectorization_9.q.out
ql/src/test/results/clientpositive/llap/vectorization_decimal_date.q.out
ql/src/test/results/clientpositive/llap/vectorization_part_project.q.out
ql/src/test/results/clientpositive/llap/vectorization_pushdown.q.out
ql/src/test/results/clientpositive/llap/vectorization_short_regress.q.out
ql/src/test/results/clientpositive/llap/vectorized_bucketmapjoin1.q.out
ql/src/test/results/clientpositive/llap/vectorized_case.q.out
ql/src/test/results/clientpositive/llap/vectorized_casts.q.out
ql/src/test/results/clientpositive/llap/vectorized_context.q.out
ql/src/test/results/clientpositive/llap/vectorized_date_funcs.q.out
ql/src/test/results/clientpositive/llap/vectorized_distinct_gby.q.out
ql/src/test/results/clientpositive/llap/vectorized_dynamic_partition_pruning.q.out
ql/src/test/results/clientpositive/llap/vectorized_mapjoin.q.out
ql/src/test/results/clientpositive/llap/vectorized_math_funcs.q.out
ql/src/test/results/clientpositive/llap/vectorized_nested_mapjoin.q.out
ql/src/test/results/clientpositive/llap/vectorized_parquet.q.out
ql/src/test/results/clientpositive/llap/vectorized_parquet_types.q.out
ql/src/test/results/clientpositive/llap/vectorized_ptf.q.out
ql/src/test/results/clientpositive/llap/vectorized_shufflejoin.q.out
ql/src/test/results/clientpositive/llap/vectorized_string_funcs.q.out
ql/src/test/results/clientpositive/llap/vectorized_timestamp.q.out
ql/src/test/results/clientpositive/llap/vectorized_timestamp_funcs.q.out
ql/src/test/results/clientpositive/llap/vectorized_timestamp_ints_casts.q.out
ql/src/test/results/clientpositive/spark/vector_between_in.q.out
ql/src/test/results/clientpositive/spark/vector_cast_constant.q.out
ql/src/test/results/clientpositive/spark/vector_char_4.q.out
ql/src/test/results/clientpositive/spark/vector_count_distinct.q.out
ql/src/test/results/clientpositive/spark/vector_data_types.q.out
ql/src/test/results/clientpositive/spark/vector_decimal_aggregate.q.out
ql/src/test/results/clientpositive/spark/vector_decimal_mapjoin.q.out
ql/src/test/results/clientpositive/spark/vector_distinct_2.q.out
ql/src/test/results/clientpositive/spark/vector_elt.q.out
ql/src/test/results/clientpositive/spark/vector_groupby_3.q.out
ql/src/test/results/clientpositive/spark/vector_inner_join.q.out
ql/src/test/results/clientpositive/spark/vector_left_outer_join.q.out
ql/src/test/results/clientpositive/spark/vector_mapjoin_reduce.q.out
ql/src/test/results/clientpositive/spark/vector_orderby_5.q.out
ql/src/test/results/clientpositive/spark/vector_outer_join0.q.out
ql/src/test/results/clientpositive/spark/vector_outer_join1.q.out
ql/src/test/results/clientpositive/spark/vector_outer_join2.q.out
ql/src/test/results/clientpositive/spark/vector_outer_join3.q.out
ql/src/test/results/clientpositive/spark/vector_outer_join4.q.out
ql/src/test/results/clientpositive/spark/vector_outer_join5.q.out
ql/src/test/results/clientpositive/spark/vector_string_concat.q.out
ql/src/test/results/clientpositive/spark/vector_varchar_4.q.out
ql/src/test/results/clientpositive/spark/vectorization_0.q.out
ql/src/test/results/clientpositive/spark/vectorization_13.q.out
ql/src/test/results/clientpositive/spark/vectorization_14.q.out
ql/src/test/results/clientpositive/spark/vectorization_15.q.out
ql/src/test/results/clientpositive/spark/vectorization_16.q.out
ql/src/test/results/clientpositive/spark/vectorization_17.q.out
ql/src/test/results/clientpositive/spark/vectorization_7.q.out
ql/src/test/results/clientpositive/spark/vectorization_8.q.out
ql/src/test/results/clientpositive/spark/vectorization_9.q.out
ql/src/test/results/clientpositive/spark/vectorization_decimal_date.q.out
ql/src/test/results/clientpositive/spark/vectorization_div0.q.out
ql/src/test/results/clientpositive/spark/vectorization_part_project.q.out
ql/src/test/results/clientpositive/spark/vectorization_pushdown.q.out
ql/src/test/results/clientpositive/spark/vectorization_short_regress.q.out
ql/src/test/results/clientpositive/spark/vectorized_bucketmapjoin1.q.out
ql/src/test/results/clientpositive/spark/vectorized_case.q.out
ql/src/test/results/clientpositive/spark/vectorized_mapjoin.q.out
ql/src/test/results/clientpositive/spark/vectorized_math_funcs.q.out
ql/src/test/results/clientpositive/spark/vectorized_nested_mapjoin.q.out
ql/src/test/results/clientpositive/spark/vectorized_ptf.q.out
ql/src/test/results/clientpositive/spark/vectorized_shufflejoin.q.out
ql/src/test/results/clientpositive/spark/vectorized_string_funcs.q.out
ql/src/test/results/clientpositive/spark/vectorized_timestamp_funcs.q.out
ql/src/test/results/clientpositive/tez/vector_join_part_col_char.q.out
ql/src/test/results/clientpositive/tez/vector_non_string_partition.q.out
ql/src/test/results/clientpositive/tez/vectorization_div0.q.out
ql/src/test/results/clientpositive/tez/vectorization_limit.q.out
ql/src/test/results/clientpositive/vector_adaptor_usage_mode.q.out
ql/src/test/results/clientpositive/vector_aggregate_9.q.out
ql/src/test/results/clientpositive/vector_aggregate_without_gby.q.out
ql/src/test/results/clientpositive/vector_auto_smb_mapjoin_14.q.out
ql/src/test/results/clientpositive/vector_between_columns.q.out
ql/src/test/results/clientpositive/vector_between_in.q.out
ql/src/test/results/clientpositive/vector_binary_join_groupby.q.out
ql/src/test/results/clientpositive/vector_bround.q.out
ql/src/test/results/clientpositive/vector_bucket.q.out
ql/src/test/results/clientpositive/vector_cast_constant.q.out
ql/src/test/results/clientpositive/vector_char_2.q.out
ql/src/test/results/clientpositive/vector_char_4.q.out
ql/src/test/results/clientpositive/vector_char_mapjoin1.q.out
ql/src/test/results/clientpositive/vector_char_simple.q.out
ql/src/test/results/clientpositive/vector_coalesce.q.out
ql/src/test/results/clientpositive/vector_coalesce_2.q.out
ql/src/test/results/clientpositive/vector_complex_all.q.out
ql/src/test/results/clientpositive/vector_complex_join.q.out
ql/src/test/results/clientpositive/vector_count.q.out
ql/src/test/results/clientpositive/vector_count_distinct.q.out
ql/src/test/results/clientpositive/vector_data_types.q.out
ql/src/test/results/clientpositive/vector_decimal_aggregate.q.out
ql/src/test/results/clientpositive/vector_decimal_cast.q.out
ql/src/test/results/clientpositive/vector_decimal_expressions.q.out
ql/src/test/results/clientpositive/vector_decimal_mapjoin.q.out
ql/src/test/results/clientpositive/vector_decimal_math_funcs.q.out
ql/src/test/results/clientpositive/vector_decimal_precision.q.out
ql/src/test/results/clientpositive/vector_decimal_round.q.out
ql/src/test/results/clientpositive/vector_decimal_round_2.q.out
ql/src/test/results/clientpositive/vector_decimal_udf2.q.out
ql/src/test/results/clientpositive/vector_distinct_2.q.out
ql/src/test/results/clientpositive/vector_elt.q.out
ql/src/test/results/clientpositive/vector_empty_where.q.out
ql/src/test/results/clientpositive/vector_groupby4.q.out
ql/src/test/results/clientpositive/vector_groupby6.q.out
ql/src/test/results/clientpositive/vector_groupby_3.q.out
ql/src/test/results/clientpositive/vector_groupby_mapjoin.q.out
ql/src/test/results/clientpositive/vector_groupby_reduce.q.out
ql/src/test/results/clientpositive/vector_grouping_sets.q.out
ql/src/test/results/clientpositive/vector_if_expr.q.out
ql/src/test/results/clientpositive/vector_include_no_sel.q.out
ql/src/test/results/clientpositive/vector_inner_join.q.out
ql/src/test/results/clientpositive/vector_interval_1.q.out
ql/src/test/results/clientpositive/vector_interval_2.q.out
ql/src/test/results/clientpositive/vector_interval_arithmetic.q.out
ql/src/test/results/clientpositive/vector_interval_mapjoin.q.out
ql/src/test/results/clientpositive/vector_join30.q.out
ql/src/test/results/clientpositive/vector_join_part_col_char.q.out
ql/src/test/results/clientpositive/vector_left_outer_join.q.out
ql/src/test/results/clientpositive/vector_left_outer_join2.q.out
ql/src/test/results/clientpositive/vector_leftsemi_mapjoin.q.out
ql/src/test/results/clientpositive/vector_mapjoin_reduce.q.out
ql/src/test/results/clientpositive/vector_mr_diff_schema_alias.q.out
ql/src/test/results/clientpositive/vector_multi_insert.q.out
ql/src/test/results/clientpositive/vector_non_constant_in_expr.q.out
ql/src/test/results/clientpositive/vector_non_string_partition.q.out
ql/src/test/results/clientpositive/vector_null_projection.q.out
ql/src/test/results/clientpositive/vector_nullsafe_join.q.out
ql/src/test/results/clientpositive/vector_number_compare_projection.q.out
ql/src/test/results/clientpositive/vector_nvl.q.out
ql/src/test/results/clientpositive/vector_orderby_5.q.out
ql/src/test/results/clientpositive/vector_outer_join0.q.out
ql/src/test/results/clientpositive/vector_outer_join1.q.out
ql/src/test/results/clientpositive/vector_outer_join2.q.out
ql/src/test/results/clientpositive/vector_outer_join3.q.out
ql/src/test/results/clientpositive/vector_outer_join4.q.out
ql/src/test/results/clientpositive/vector_outer_join5.q.out
ql/src/test/results/clientpositive/vector_outer_join6.q.out
ql/src/test/results/clientpositive/vector_partition_diff_num_cols.q.out
ql/src/test/results/clientpositive/vector_partitioned_date_time.q.out
ql/src/test/results/clientpositive/vector_reduce1.q.out
ql/src/test/results/clientpositive/vector_reduce2.q.out
ql/src/test/results/clientpositive/vector_reduce3.q.out
ql/src/test/results/clientpositive/vector_reduce_groupby_decimal.q.out
ql/src/test/results/clientpositive/vector_string_concat.q.out
ql/src/test/results/clientpositive/vector_string_decimal.q.out
ql/src/test/results/clientpositive/vector_struct_in.q.out
ql/src/test/results/clientpositive/vector_tablesample_rows.q.out
ql/src/test/results/clientpositive/vector_udf2.q.out
ql/src/test/results/clientpositive/vector_udf3.q.out
ql/src/test/results/clientpositive/vector_varchar_4.q.out
ql/src/test/results/clientpositive/vector_varchar_mapjoin1.q.out
ql/src/test/results/clientpositive/vector_varchar_simple.q.out
ql/src/test/results/clientpositive/vector_when_case_null.q.out
ql/src/test/results/clientpositive/vectorization_0.q.out
ql/src/test/results/clientpositive/vectorization_13.q.out
ql/src/test/results/clientpositive/vectorization_14.q.out
ql/src/test/results/clientpositive/vectorization_15.q.out
ql/src/test/results/clientpositive/vectorization_16.q.out
ql/src/test/results/clientpositive/vectorization_17.q.out
ql/src/test/results/clientpositive/vectorization_7.q.out
ql/src/test/results/clientpositive/vectorization_8.q.out
ql/src/test/results/clientpositive/vectorization_9.q.out
ql/src/test/results/clientpositive/vectorization_decimal_date.q.out
ql/src/test/results/clientpositive/vectorization_div0.q.out
ql/src/test/results/clientpositive/vectorization_limit.q.out
ql/src/test/results/clientpositive/vectorization_offset_limit.q.out
ql/src/test/results/clientpositive/vectorization_part_project.q.out
ql/src/test/results/clientpositive/vectorization_pushdown.q.out
ql/src/test/results/clientpositive/vectorization_short_regress.q.out
ql/src/test/results/clientpositive/vectorized_bucketmapjoin1.q.out
ql/src/test/results/clientpositive/vectorized_case.q.out
ql/src/test/results/clientpositive/vectorized_casts.q.out
ql/src/test/results/clientpositive/vectorized_context.q.out
ql/src/test/results/clientpositive/vectorized_date_funcs.q.out
ql/src/test/results/clientpositive/vectorized_distinct_gby.q.out
ql/src/test/results/clientpositive/vectorized_mapjoin.q.out
ql/src/test/results/clientpositive/vectorized_mapjoin2.q.out
ql/src/test/results/clientpositive/vectorized_math_funcs.q.out
ql/src/test/results/clientpositive/vectorized_nested_mapjoin.q.out
ql/src/test/results/clientpositive/vectorized_parquet.q.out
ql/src/test/results/clientpositive/vectorized_parquet_types.q.out
ql/src/test/results/clientpositive/vectorized_ptf.q.out
ql/src/test/results/clientpositive/vectorized_shufflejoin.q.out
ql/src/test/results/clientpositive/vectorized_string_funcs.q.out
ql/src/test/results/clientpositive/vectorized_timestamp.q.out
ql/src/test/results/clientpositive/vectorized_timestamp_funcs.q.out
ql/src/test/results/clientpositive/vectorized_timestamp_ints_casts.q.out

index 959a542..a1068ec 100644 (file)
@@ -54,4 +54,24 @@ public class DateUtils {
     }
     return result;
   }
+
+  // From java.util.Calendar
+  private static final String[] FIELD_NAME = {
+    "ERA", "YEAR", "MONTH", "WEEK_OF_YEAR", "WEEK_OF_MONTH", "DAY_OF_MONTH",
+    "DAY_OF_YEAR", "DAY_OF_WEEK", "DAY_OF_WEEK_IN_MONTH", "AM_PM", "HOUR",
+    "HOUR_OF_DAY", "MINUTE", "SECOND", "MILLISECOND", "ZONE_OFFSET",
+    "DST_OFFSET"
+  };
+
+  /**
+   * Returns the name of the specified calendar field.
+   *
+   * @param field the calendar field
+   * @return the calendar field name
+   * @exception IndexOutOfBoundsException if <code>field</code> is negative,
+   * equal to or greater then <code>FIELD_COUNT</code>.
+   */
+  public static String getFieldName(int field) {
+      return FIELD_NAME[field];
+  }
 }
index e52fcc0..d8164a4 100644 (file)
@@ -157,7 +157,12 @@ public class <ClassName> extends VectorExpression {
   public void setOutputColumn(int outputColumn) {
     this.outputColumn = outputColumn;
   }
-  
+
+  @Override
+  public String vectorExpressionParameters() {
+    return "col " + colNum1 + ", col " + + colNum2;
+  }
+
   @Override
   public VectorExpressionDescriptor.Descriptor getDescriptor() {
     return (new VectorExpressionDescriptor.Builder())
index e1df589..31a015f 100644 (file)
@@ -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(
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt b/ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnWithConvert.txt
deleted file mode 100644 (file)
index bcd10a2..0000000
+++ /dev/null
@@ -1,173 +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.expressions.NullUtil;
-import org.apache.hadoop.hive.ql.exec.vector.*;
-import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
-import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
-
-/**
- * Generated from template ColumnArithmeticColumnWithConvert.txt, which covers binary arithmetic 
- * expressions between columns.
- */
-public class <ClassName> extends VectorExpression {
-
-  private static final long serialVersionUID = 1L;
-  
-  private int colNum1;
-  private int colNum2;
-  private int outputColumn;
-
-  public <ClassName>(int colNum1, int colNum2, int outputColumn) {
-    this.colNum1 = colNum1;
-    this.colNum2 = colNum2;
-    this.outputColumn = outputColumn;
-  }
-
-  public <ClassName>() {
-  }
-
-  @Override
-  public void evaluate(VectorizedRowBatch batch) {
-
-    if (childExpressions != null) {
-      super.evaluateChildren(batch);
-    }
-
-    <InputColumnVectorType1> inputColVector1 = (<InputColumnVectorType1>) batch.cols[colNum1];
-    <InputColumnVectorType2> inputColVector2 = (<InputColumnVectorType2>) batch.cols[colNum2];
-    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
-    int[] sel = batch.selected;
-    int n = batch.size;
-    <VectorOperandType1>[] vector1 = inputColVector1.vector;
-    <VectorOperandType2>[] vector2 = inputColVector2.vector;
-    <VectorReturnType>[] outputVector = outputColVector.vector;
-    
-    // return immediately if batch is empty
-    if (n == 0) {
-      return;
-    }
-    
-    outputColVector.isRepeating = 
-         inputColVector1.isRepeating && inputColVector2.isRepeating
-      || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0]
-      || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0];
-    
-    // Handle nulls first  
-    NullUtil.propagateNullsColCol(
-      inputColVector1, inputColVector2, outputColVector, sel, n, batch.selectedInUse);
-          
-    /* Disregard nulls for processing. In other words,
-     * the arithmetic operation is performed even if one or 
-     * more inputs are null. This is to improve speed by avoiding
-     * conditional checks in the inner loop.
-     */ 
-    if (inputColVector1.isRepeating && inputColVector2.isRepeating) { 
-      outputVector[0] = <TypeConversion1>(vector1[0]) <OperatorSymbol> <TypeConversion2>(vector2[0]);
-    } else if (inputColVector1.isRepeating) {
-      if (batch.selectedInUse) {
-        for(int j = 0; j != n; j++) {
-          int i = sel[j];
-          outputVector[i] = <TypeConversion1>(vector1[0]) <OperatorSymbol> <TypeConversion2>(vector2[i]);
-        }
-      } else {
-        for(int i = 0; i != n; i++) {
-          outputVector[i] = <TypeConversion1>(vector1[0]) <OperatorSymbol> <TypeConversion2>(vector2[i]);
-        }
-      }
-    } else if (inputColVector2.isRepeating) {
-      if (batch.selectedInUse) {
-        for(int j = 0; j != n; j++) {
-          int i = sel[j];
-          outputVector[i] = <TypeConversion1>(vector1[i]) <OperatorSymbol> <TypeConversion2>(vector2[0]);
-        }
-      } else {
-        for(int i = 0; i != n; i++) {
-          outputVector[i] = <TypeConversion1>(vector1[i]) <OperatorSymbol> <TypeConversion2>(vector2[0]);
-        }
-      }
-    } else {
-      if (batch.selectedInUse) {
-        for(int j = 0; j != n; j++) {
-          int i = sel[j];
-          outputVector[i] = <TypeConversion1>(vector1[i]) <OperatorSymbol> <TypeConversion2>(vector2[i]);
-        }
-      } else {
-        for(int i = 0; i != n; i++) {
-          outputVector[i] = <TypeConversion1>(vector1[i]) <OperatorSymbol>  <TypeConversion2>(vector2[i]);
-        }
-      }
-    }
-    
-    /* For the case when the output can have null values, follow 
-     * the convention that the data values must be 1 for long and 
-     * NaN for double. This is to prevent possible later zero-divide errors
-     * in complex arithmetic expressions like col2 / (col1 - 1)
-     * in the case when some col1 entries are null.
-     */
-    NullUtil.setNullDataEntries<CamelReturnType>(outputColVector, batch.selectedInUse, sel, n);
-  }
-
-  @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "<VectorReturnType>";
-  }
-  
-  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 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.COLUMN,
-            VectorExpressionDescriptor.InputExpressionType.COLUMN).build();
-  }
-}
-
index 87335f1..2cc1aa2 100644 (file)
@@ -134,6 +134,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(
index 0bb1532..294bb4f 100644 (file)
@@ -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(
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt b/ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt
deleted file mode 100644 (file)
index 105eb92..0000000
+++ /dev/null
@@ -1,150 +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.<InputColumnVectorType>;
-import org.apache.hadoop.hive.ql.exec.vector.<OutputColumnVectorType>;
-import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
-import org.apache.hadoop.hive.ql.exec.vector.expressions.NullUtil;
-import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
-import org.apache.hadoop.hive.ql.exec.vector.*;
-
-/**
- * Generated from template ColumnArithmeticScalarWithConvert.txt, which covers binary arithmetic 
- * expressions between a column and a scalar.
- */
-public class <ClassName> extends VectorExpression {
-
-  private static final long serialVersionUID = 1L;
-
-  private int colNum;
-  private <VectorOperandType2> value;
-  private int outputColumn;
-
-  public <ClassName>(int colNum, <VectorOperandType2> value, int outputColumn) {
-    this.colNum = colNum;
-    this.value = <TypeConversion2>(value);
-    this.outputColumn = outputColumn;
-  }
-
-  public <ClassName>() {
-  }
-
-  @Override
-  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;
-    <VectorOperandType1>[] vector = inputColVector.vector;
-    <VectorReturnType>[] outputVector = outputColVector.vector;
-    
-    // return immediately if batch is empty
-    if (n == 0) {
-      return;
-    }
-
-    if (inputColVector.isRepeating) {
-      outputVector[0] = <TypeConversion1>(vector[0]) <OperatorSymbol> value;
-      
-      // 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] = <TypeConversion1>(vector[i]) <OperatorSymbol> value;
-        }
-      } else {
-        for(int i = 0; i != n; i++) {
-          outputVector[i] = <TypeConversion1>(vector[i]) <OperatorSymbol> value;
-        }
-      }
-    } else /* there are nulls */ {
-      if (batch.selectedInUse) {
-        for(int j = 0; j != n; j++) {
-          int i = sel[j];
-          outputVector[i] = <TypeConversion1>(vector[i]) <OperatorSymbol> value;
-          outputIsNull[i] = inputIsNull[i];
-        }
-      } else {
-        for(int i = 0; i != n; i++) {
-          outputVector[i] = <TypeConversion1>(vector[i]) <OperatorSymbol> value;
-        }
-        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 <VectorOperandType2> getValue() {
-    return value;
-  }
-
-  public void setValue(<VectorOperandType2> 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.COLUMN,
-            VectorExpressionDescriptor.InputExpressionType.SCALAR).build();
-  }
-}
index f2b4c81..cbc97da 100644 (file)
@@ -157,6 +157,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(
index 2438ee4..6568d1c 100644 (file)
@@ -149,6 +149,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(
index b0f6eb1..04b533a 100644 (file)
@@ -184,6 +184,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(
index 623bcfb..68c4f58 100644 (file)
@@ -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(
index c6614ab..25e0d85 100644 (file)
@@ -139,6 +139,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(
index 841ef93..0728f6c 100644 (file)
@@ -138,6 +138,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(
index cf690db..efbf1ba 100644 (file)
@@ -122,6 +122,11 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
+  public String vectorExpressionParameters() {
+    return "col " + colNum;
+  }
+
+  @Override
   public VectorExpressionDescriptor.Descriptor getDescriptor() {
     return (new VectorExpressionDescriptor.Builder())
         .setMode(
index b52b7c7..6574267 100644 (file)
@@ -124,6 +124,11 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
+  public String vectorExpressionParameters() {
+    return "col " + colNum;
+  }
+
+  @Override
   public VectorExpressionDescriptor.Descriptor getDescriptor() {
     return (new VectorExpressionDescriptor.Builder())
         .setMode(
index c3d8d7e..2a9f947 100644 (file)
@@ -181,6 +181,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(
index d1474fb..4bbc358 100644 (file)
@@ -141,6 +141,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(
index 63cebaf..2e66b3a 100644 (file)
@@ -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(
index 7aee529..e679449 100644 (file)
@@ -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(
index c68ac34..e23dc27 100644 (file)
@@ -155,6 +155,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(
index cb6b750..85d88fd 100644 (file)
@@ -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(
index 619015e..0b7fefc 100644 (file)
@@ -119,6 +119,11 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
+  public String vectorExpressionParameters() {
+    return "col " + colNum;
+  }
+
+  @Override
   public VectorExpressionDescriptor.Descriptor getDescriptor() {
     return (new VectorExpressionDescriptor.Builder())
         .setMode(
index e9aaaf2..0a9c444 100644 (file)
@@ -173,7 +173,12 @@ public class <ClassName> extends VectorExpression {
   public void setRightValue(<OperandType> value) {
     this.leftValue = value;
   }
-  
+
+  @Override
+  public String vectorExpressionParameters() {
+    return "col " + colNum + ", left " + leftValue + ", right " + rightValue;
+  }
+
   @Override
   public VectorExpressionDescriptor.Descriptor getDescriptor() {
     return (new VectorExpressionDescriptor.Builder())
index e25b9c2..ee80606 100644 (file)
@@ -33,8 +33,8 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum1;
-  private int colNum2;
+  protected int colNum1;
+  protected int colNum2;
 
   public <ClassName>(int colNum1, int colNum2) { 
     this.colNum1 = colNum1;
@@ -182,6 +182,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(
index b0f6e5c..248a66a 100644 (file)
@@ -32,8 +32,8 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  private <OperandType2> value;
+  protected int colNum;
+  protected <OperandType2> value;
 
   public <ClassName>(int colNum, <OperandType2> value) { 
     this.colNum = colNum;
@@ -158,6 +158,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(
index d68edfa..4cef036 100644 (file)
@@ -155,6 +155,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(
index a2352c6..ee450d3 100644 (file)
@@ -430,6 +430,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(
index bdd39b9..9943f45 100644 (file)
@@ -145,6 +145,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(
index 0608016..4477aff 100644 (file)
@@ -145,6 +145,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(
index 57caf7e..610c062 100644 (file)
@@ -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(
index f5f59c2..73c46a1 100644 (file)
@@ -154,6 +154,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(
index b7544c7..037382c 100644 (file)
@@ -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(
index e8049da..6cbfca1 100644 (file)
@@ -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 setRight(byte[] value) {
     this.right = value;
   }
-  
+
+  @Override
+  public String vectorExpressionParameters() {
+    return "col " + colNum + ", left " + new String(left, StandardCharsets.UTF_8) + ", right " + new String(right, StandardCharsets.UTF_8);
+  }
+
   @Override
   public VectorExpressionDescriptor.Descriptor getDescriptor() {
     return (new VectorExpressionDescriptor.Builder())
index a72b882..9114932 100644 (file)
@@ -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(
index 8b1c366..b56d451 100644 (file)
@@ -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 " + new String(value, StandardCharsets.UTF_8);
+  }
+
 }
\ No newline at end of file
index 930069c..4fb5035 100644 (file)
@@ -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 " + new String(value, StandardCharsets.UTF_8) + ", col " + + colNum;
+  }
+
 }
index 4298d79..7863b16 100644 (file)
@@ -154,6 +154,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(
index d10be96..8873826 100644 (file)
@@ -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(
index 31c3f6b..8583eee 100644 (file)
@@ -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(
index 31dce1c..eeb73c9 100644 (file)
@@ -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(
index bab8508..23790a5 100644 (file)
@@ -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(
index 5e418de..0e10779 100644 (file)
@@ -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(
index ff5d11e..5a6def3 100644 (file)
@@ -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(
index 94a174d..781c9b8 100644 (file)
@@ -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 setRight(byte[] value) {
     this.right = value;
   }
-  
+
+  @Override
+  public String vectorExpressionParameters() {
+     return "col " + colNum + ", left " + new String(left, StandardCharsets.UTF_8) +
+         ", right " + new String(right, StandardCharsets.UTF_8);
+  }
+
   @Override
   public VectorExpressionDescriptor.Descriptor getDescriptor() {
     return (new VectorExpressionDescriptor.Builder())
index 3a75a26..9f4bb75 100644 (file)
@@ -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(
index 648b776..487d894 100644 (file)
@@ -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(
index def9863..5651d15 100644 (file)
@@ -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(
index 8e3a419..49a1950 100644 (file)
@@ -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(
index ad65d52..283352d 100644 (file)
@@ -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(
index 858c3d7..9eba829 100644 (file)
@@ -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(
index 66fffd2..9a06822 100644 (file)
@@ -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(
index ddde913..a5d9877 100644 (file)
@@ -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(
index cbb7021..9a0d397 100644 (file)
@@ -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(
index 9ccfaac..cff2deb 100644 (file)
@@ -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(
index c7d8c65..8308a30 100644 (file)
@@ -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() {
index d47bc10..6aa30e4 100644 (file)
@@ -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(
index 4fcbdc0..8473599 100644 (file)
@@ -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(
index ea55bec..d3fd9bd 100644 (file)
@@ -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(
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt b/ql/src/gen/vectorization/ExpressionTemplates/ScalarArithmeticColumnWithConvert.txt
deleted file mode 100644 (file)
index 91887c8..0000000
+++ /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();
-  }
-}
index e6e59f5..6f9e2e2 100644 (file)
@@ -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(
index f8a8457..8e6e8a9 100644 (file)
@@ -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(
index c8a5d17..1014978 100644 (file)
@@ -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(
index e881037..747f707 100644 (file)
@@ -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(
index 92bf27a..d9530d6 100644 (file)
@@ -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 " + new String(value, StandardCharsets.UTF_8);
+  }
 }
\ No newline at end of file
index 8a92f54..8e36fc0 100644 (file)
@@ -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 " + new String(value, StandardCharsets.UTF_8);
+  }
+
+  @Override
   public VectorExpressionDescriptor.Descriptor getDescriptor() {
     return (new VectorExpressionDescriptor.Builder())
         .setMode(
index 238dc93..5eed703 100644 (file)
@@ -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 " + new String(value, StandardCharsets.UTF_8) + ", col " + + colNum;
+  }
 }
\ No newline at end of file
index 27e083d..7aeff81 100644 (file)
@@ -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(
index 8b91a4a..f8cb880 100644 (file)
@@ -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(
index 4ac2174..989e2f5 100644 (file)
@@ -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(
index 9382aca..a90b1b2 100644 (file)
@@ -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(
index 5eaa450..ad43cac 100644 (file)
@@ -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(
index c6c872f..32b49a3 100644 (file)
@@ -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(
index 0fc402d..7267148 100644 (file)
@@ -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(
index e0ae206..2be05f3 100644 (file)
@@ -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(
index f9fc425..2710fa4 100644 (file)
@@ -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(
index 90701ec..32647f2 100644 (file)
@@ -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(
index f958be8..dea4db2 100644 (file)
@@ -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(
index 585027a..e82b9e2 100644 (file)
@@ -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(
index 996c86a..0d8a26b 100644 (file)
@@ -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(
index 6506c93..ec0a395 100644 (file)
@@ -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(
index a9a3b6d..26da73a 100644 (file)
@@ -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;
index d153fd6..4393c3b 100644 (file)
@@ -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;
index 46d66bd..7468c2f 100644 (file)
@@ -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) {
index 9a48171..6b91fc2 100644 (file)
@@ -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) {
index 3cdf7e2..749e97e 100644 (file)
@@ -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) {
index cdce457..9dfc147 100644 (file)
@@ -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) {
index 7e34965..32ecb34 100644 (file)
@@ -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) {
index cc7e54d..bd0f14d 100644 (file)
@@ -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) {
index c6c9c52..dc9d4b1 100644 (file)
@@ -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;
index 8fc94ba..01062a9 100644 (file)
@@ -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;
index b8a4693..74cec3e 100644 (file)
@@ -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 {
index 416606e..c070c4a 100644 (file)
@@ -93,7 +93,7 @@ public class MapJoinOperator extends AbstractMapJoinOperator<MapJoinDesc> implem
   protected transient ReusableGetAdaptor[] hashMapRowGetters;
 
   private UnwrapRowContainer[] unwrapContainer;
-  private transient Configuration hconf;
+  protected transient Configuration hconf;
   private transient boolean hybridMapJoinLeftover;  // whether there's spilled data to be processed
   protected transient MapJoinBytesTableContainer[] spilledMapJoinTables;  // used to hold restored
                                                                           // spilled small tables
index 038b96c..af1fa66 100644 (file)
@@ -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);