Revert "Revert "Revert "HIVE-11394: Enhance EXPLAIN display for vectorization (Matt...
authorMatt McCline <mmccline@hortonworks.com>
Mon, 17 Oct 2016 20:31:42 +0000 (13:31 -0700)
committerMatt McCline <mmccline@hortonworks.com>
Mon, 17 Oct 2016 20:31:42 +0000 (13:31 -0700)
This reverts commit 16d28b343b76c998b8fdbd8a91bae07ac82357de.

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 [new file with mode: 0644]
ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarWithConvert.txt [new file with mode: 0644]
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 [new file with mode: 0644]
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 [deleted file]
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 [deleted file]
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 [deleted file]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorFileSinkDesc.java [deleted file]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorFilterDesc.java [deleted file]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorGroupByDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorLimitDesc.java [deleted file]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorMapJoinDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorMapJoinInfo.java [deleted file]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorReduceSinkDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorSMBJoinDesc.java [deleted file]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorSelectDesc.java [deleted file]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorSparkHashTableSinkDesc.java [deleted file]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorTableScanDesc.java [deleted file]
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorizationCondition.java [deleted file]
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 a1068ec..959a542 100644 (file)
@@ -54,24 +54,4 @@ 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 d8164a4..e52fcc0 100644 (file)
@@ -157,12 +157,7 @@ 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 31a015f..e1df589 100644 (file)
@@ -167,11 +167,6 @@ 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
new file mode 100644 (file)
index 0000000..bcd10a2
--- /dev/null
@@ -0,0 +1,173 @@
+/**
+ * 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 2cc1aa2..87335f1 100644 (file)
@@ -134,11 +134,6 @@ 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 294bb4f..0bb1532 100644 (file)
@@ -132,11 +132,6 @@ 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
new file mode 100644 (file)
index 0000000..105eb92
--- /dev/null
@@ -0,0 +1,150 @@
+/**
+ * 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 cbc97da..f2b4c81 100644 (file)
@@ -157,11 +157,6 @@ 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 6568d1c..2438ee4 100644 (file)
@@ -149,11 +149,6 @@ 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 04b533a..b0f6eb1 100644 (file)
@@ -184,11 +184,6 @@ 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 68c4f58..623bcfb 100644 (file)
@@ -139,11 +139,6 @@ 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 25e0d85..c6614ab 100644 (file)
@@ -139,11 +139,6 @@ 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 0728f6c..841ef93 100644 (file)
@@ -138,11 +138,6 @@ 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 efbf1ba..cf690db 100644 (file)
@@ -122,11 +122,6 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public String vectorExpressionParameters() {
-    return "col " + colNum;
-  }
-
-  @Override
   public VectorExpressionDescriptor.Descriptor getDescriptor() {
     return (new VectorExpressionDescriptor.Builder())
         .setMode(
index 6574267..b52b7c7 100644 (file)
@@ -124,11 +124,6 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public String vectorExpressionParameters() {
-    return "col " + colNum;
-  }
-
-  @Override
   public VectorExpressionDescriptor.Descriptor getDescriptor() {
     return (new VectorExpressionDescriptor.Builder())
         .setMode(
index 2a9f947..c3d8d7e 100644 (file)
@@ -181,11 +181,6 @@ 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 4bbc358..d1474fb 100644 (file)
@@ -141,11 +141,6 @@ 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 2e66b3a..63cebaf 100644 (file)
@@ -170,11 +170,6 @@ 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 e679449..7aee529 100644 (file)
@@ -139,11 +139,6 @@ 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 e23dc27..c68ac34 100644 (file)
@@ -155,11 +155,6 @@ 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 85d88fd..cb6b750 100644 (file)
@@ -146,11 +146,6 @@ 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 0b7fefc..619015e 100644 (file)
@@ -119,11 +119,6 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public String vectorExpressionParameters() {
-    return "col " + colNum;
-  }
-
-  @Override
   public VectorExpressionDescriptor.Descriptor getDescriptor() {
     return (new VectorExpressionDescriptor.Builder())
         .setMode(
index 0a9c444..e9aaaf2 100644 (file)
@@ -173,12 +173,7 @@ 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 ee80606..e25b9c2 100644 (file)
@@ -33,8 +33,8 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  protected int colNum1;
-  protected int colNum2;
+  private int colNum1;
+  private int colNum2;
 
   public <ClassName>(int colNum1, int colNum2) { 
     this.colNum1 = colNum1;
@@ -182,11 +182,6 @@ 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 248a66a..b0f6e5c 100644 (file)
@@ -32,8 +32,8 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  protected int colNum;
-  protected <OperandType2> value;
+  private int colNum;
+  private <OperandType2> value;
 
   public <ClassName>(int colNum, <OperandType2> value) { 
     this.colNum = colNum;
@@ -158,11 +158,6 @@ 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 4cef036..d68edfa 100644 (file)
@@ -155,11 +155,6 @@ 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 ee450d3..a2352c6 100644 (file)
@@ -430,11 +430,6 @@ 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 9943f45..bdd39b9 100644 (file)
@@ -145,11 +145,6 @@ 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 4477aff..0608016 100644 (file)
@@ -145,11 +145,6 @@ 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 610c062..57caf7e 100644 (file)
@@ -170,11 +170,6 @@ 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 73c46a1..f5f59c2 100644 (file)
@@ -154,11 +154,6 @@ 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 037382c..b7544c7 100644 (file)
@@ -32,8 +32,8 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  protected int colNum;
-  protected <OperandType1> value;
+  private int colNum;
+  private <OperandType1> value;
 
   public <ClassName>(<OperandType1> value, int colNum) { 
     this.colNum = colNum;
@@ -158,11 +158,6 @@ 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 6cbfca1..e8049da 100644 (file)
@@ -18,8 +18,6 @@
  
 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;
@@ -178,12 +176,7 @@ 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 9114932..a72b882 100644 (file)
@@ -477,11 +477,6 @@ 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 b56d451..8b1c366 100644 (file)
@@ -18,8 +18,6 @@
  
 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,9 +152,4 @@ 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 4fb5035..930069c 100644 (file)
@@ -18,8 +18,6 @@
  
 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;
@@ -157,10 +155,4 @@ 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 7863b16..4298d79 100644 (file)
@@ -154,11 +154,6 @@ 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 8873826..d10be96 100644 (file)
@@ -167,11 +167,6 @@ 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 8583eee..31c3f6b 100644 (file)
@@ -150,11 +150,6 @@ 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 eeb73c9..31dce1c 100644 (file)
@@ -436,11 +436,6 @@ 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 23790a5..bab8508 100644 (file)
@@ -147,11 +147,6 @@ 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 0e10779..5e418de 100644 (file)
@@ -43,11 +43,6 @@ 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 5a6def3..ff5d11e 100644 (file)
@@ -149,11 +149,6 @@ 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 781c9b8..94a174d 100644 (file)
@@ -18,8 +18,6 @@
  
 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;
@@ -180,13 +178,7 @@ 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 9f4bb75..3a75a26 100644 (file)
@@ -160,11 +160,6 @@ 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 487d894..648b776 100644 (file)
@@ -162,11 +162,6 @@ 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 5651d15..def9863 100644 (file)
@@ -147,11 +147,6 @@ 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 49a1950..8e3a419 100644 (file)
@@ -180,11 +180,6 @@ 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 283352d..ad65d52 100644 (file)
@@ -141,11 +141,6 @@ 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 9eba829..858c3d7 100644 (file)
@@ -170,11 +170,6 @@ 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 9a06822..66fffd2 100644 (file)
@@ -139,11 +139,6 @@ 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 a5d9877..ddde913 100644 (file)
@@ -155,11 +155,6 @@ 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 9a0d397..cbb7021 100644 (file)
@@ -143,11 +143,6 @@ 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 cff2deb..9ccfaac 100644 (file)
@@ -139,11 +139,6 @@ 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 8308a30..c7d8c65 100644 (file)
@@ -129,10 +129,6 @@ public class <ClassName> extends VectorExpression {
     return "long";
   }
 
-  @Override
-  public String vectorExpressionParameters() {
-    return "col " + colNum + ", val " + value;
-  }
 
   @Override
   public VectorExpressionDescriptor.Descriptor getDescriptor() {
index 6aa30e4..d47bc10 100644 (file)
@@ -129,11 +129,6 @@ 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 8473599..4fcbdc0 100644 (file)
@@ -146,11 +146,6 @@ 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 d3fd9bd..ea55bec 100644 (file)
@@ -129,11 +129,6 @@ 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
new file mode 100644 (file)
index 0000000..91887c8
--- /dev/null
@@ -0,0 +1,163 @@
+/**
+ * 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 6f9e2e2..e6e59f5 100644 (file)
@@ -149,11 +149,6 @@ 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 8e6e8a9..f8a8457 100644 (file)
@@ -162,11 +162,6 @@ 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 1014978..c8a5d17 100644 (file)
@@ -131,11 +131,6 @@ 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 747f707..e881037 100644 (file)
@@ -493,11 +493,6 @@ 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 d9530d6..92bf27a 100644 (file)
@@ -18,8 +18,6 @@
  
 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;
@@ -157,8 +155,4 @@ 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 8e36fc0..8a92f54 100644 (file)
@@ -20,8 +20,6 @@ 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;
@@ -46,11 +44,6 @@ 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 5eed703..238dc93 100644 (file)
@@ -18,8 +18,6 @@
  
 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;
@@ -156,9 +154,4 @@ 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 7aeff81..27e083d 100644 (file)
@@ -171,11 +171,6 @@ 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 f8cb880..8b91a4a 100644 (file)
@@ -132,11 +132,6 @@ 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 989e2f5..4ac2174 100644 (file)
@@ -170,11 +170,6 @@ 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 a90b1b2..9382aca 100644 (file)
@@ -128,11 +128,6 @@ 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 ad43cac..5eaa450 100644 (file)
@@ -161,11 +161,6 @@ 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 32b49a3..c6c872f 100644 (file)
@@ -130,11 +130,6 @@ 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 7267148..0fc402d 100644 (file)
@@ -138,11 +138,6 @@ 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 2be05f3..e0ae206 100644 (file)
@@ -129,11 +129,6 @@ 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 2710fa4..f9fc425 100644 (file)
@@ -143,11 +143,6 @@ 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 32647f2..90701ec 100644 (file)
@@ -133,11 +133,6 @@ 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 dea4db2..f958be8 100644 (file)
@@ -153,11 +153,6 @@ 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 e82b9e2..585027a 100644 (file)
@@ -152,11 +152,6 @@ 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 0d8a26b..996c86a 100644 (file)
@@ -143,11 +143,6 @@ 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 ec0a395..6506c93 100644 (file)
@@ -135,11 +135,6 @@ 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 26da73a..a9a3b6d 100644 (file)
@@ -20,8 +20,6 @@ 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 4393c3b..d153fd6 100644 (file)
@@ -85,12 +85,6 @@ 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 7468c2f..46d66bd 100644 (file)
@@ -77,12 +77,6 @@ public class <ClassName> extends VectorAggregateExpression {
     }
     
     private VectorExpression inputExpression;
-
-    @Override
-    public VectorExpression inputExpression() {
-      return inputExpression;
-    }
-
     private transient VectorExpressionWriter resultWriter;
     
     public <ClassName>(VectorExpression inputExpression) {
index 6b91fc2..9a48171 100644 (file)
@@ -83,12 +83,6 @@ public class <ClassName> extends VectorAggregateExpression {
     }
 
     private VectorExpression inputExpression;
-
-    @Override
-    public VectorExpression inputExpression() {
-      return inputExpression;
-    }
-
     private transient VectorExpressionWriter resultWriter;
 
     public <ClassName>(VectorExpression inputExpression) {
index 749e97e..3cdf7e2 100644 (file)
@@ -81,12 +81,6 @@ public class <ClassName> extends VectorAggregateExpression {
     }
 
     private VectorExpression inputExpression;
-
-    @Override
-    public VectorExpression inputExpression() {
-      return inputExpression;
-    }
-
     private transient VectorExpressionWriter resultWriter;
 
     public <ClassName>(VectorExpression inputExpression) {
index 9dfc147..cdce457 100644 (file)
@@ -93,12 +93,6 @@ public class <ClassName> extends VectorAggregateExpression {
     }
 
     private VectorExpression inputExpression;
-
-    @Override
-    public VectorExpression inputExpression() {
-      return inputExpression;
-    }
-
     transient private Text result;
 
     public <ClassName>(VectorExpression inputExpression) {
index 32ecb34..7e34965 100644 (file)
@@ -83,12 +83,6 @@ public class <ClassName> extends VectorAggregateExpression {
     }
 
     private VectorExpression inputExpression;
-
-    @Override
-    public VectorExpression inputExpression() {
-      return inputExpression;
-    }
-
     private transient VectorExpressionWriter resultWriter;
 
     public <ClassName>(VectorExpression inputExpression) {
index bd0f14d..cc7e54d 100644 (file)
@@ -78,12 +78,6 @@ public class <ClassName> extends VectorAggregateExpression {
     }
     
     private VectorExpression inputExpression;
-
-    @Override
-    public VectorExpression inputExpression() {
-      return inputExpression;
-    }
-
     transient private final <OutputType> result;
     
     public <ClassName>(VectorExpression inputExpression) {
index dc9d4b1..c6c9c52 100644 (file)
@@ -84,12 +84,6 @@ 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 01062a9..8fc94ba 100644 (file)
@@ -111,12 +111,6 @@ 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 74cec3e..b8a4693 100644 (file)
@@ -20,8 +20,6 @@ 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;
@@ -37,68 +35,30 @@ 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;
@@ -197,54 +157,6 @@ 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(),
@@ -272,46 +184,26 @@ public class ExplainTask extends Task<ExplainWork> implements Serializable {
       ordered.add(fetchTask);
     }
 
-    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;
-      }
+    JSONObject jsonDependencies = outputDependencies(out, jsonOutput, appendTaskType, ordered);
 
-      if (out != null) {
-        out.println();
-      }
-  
-      if (jsonOutput) {
-        outJSONObject.put("PLAN VECTORIZATION", planVecPair.right);
-      }
+    if (out != null) {
+      out.println();
     }
 
-    if (!suppressOthersForVectorization) {
-      JSONObject jsonDependencies = outputDependencies(out, jsonOutput, appendTaskType, ordered);
-
-      if (out != null) {
-        out.println();
-      }
-
-      if (jsonOutput) {
-        outJSONObject.put("STAGE DEPENDENCIES", jsonDependencies);
-      }
+    if (jsonOutput) {
+      outJSONObject.put("STAGE DEPENDENCIES", jsonDependencies);
+    }
 
-      // Go over all the tasks and dump out the plans
-      JSONObject jsonPlan = outputStagePlans(out, ordered,
-           jsonOutput, isExtended);
+    // 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 (jsonOutput) {
+      outJSONObject.put("STAGE PLANS", jsonPlan);
+    }
 
-      if (fetchTask != null) {
-        fetchTask.setParentTasks(null);
-      }
+    if (fetchTask != null) {
+      fetchTask.setParentTasks(null);
     }
 
     return jsonOutput ? outJSONObject : null;
@@ -710,64 +602,6 @@ 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));
@@ -841,64 +675,6 @@ 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 c070c4a..416606e 100644 (file)
@@ -93,7 +93,7 @@ public class MapJoinOperator extends AbstractMapJoinOperator<MapJoinDesc> implem
   protected transient ReusableGetAdaptor[] hashMapRowGetters;
 
   private UnwrapRowContainer[] unwrapContainer;
-  protected transient Configuration hconf;
+  private 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 af1fa66..038b96c 100644 (file)
@@ -41,8 +41,6 @@ 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;
@@ -75,7 +73,6 @@ 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;
 
@@ -145,8 +142,6 @@ 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(cCon