HIVE-17433: Vectorization: Support Decimal64 in Hive Query Engine (Matt McCline,...
authorMatt McCline <mmccline@hortonworks.com>
Sun, 29 Oct 2017 20:36:34 +0000 (15:36 -0500)
committerMatt McCline <mmccline@hortonworks.com>
Sun, 29 Oct 2017 20:36:34 +0000 (15:36 -0500)
866 files changed:
common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
itests/src/test/resources/testconfiguration.properties
llap-server/src/java/org/apache/hadoop/hive/llap/io/api/impl/LlapInputFormat.java
ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticColumnDecimal.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/ColumnArithmeticScalarDecimal.txt
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/DTIColumnArithmeticDTIColumnNoConvert.txt
ql/src/gen/vectorization/ExpressionTemplates/DTIColumnArithmeticDTIScalarNoConvert.txt
ql/src/gen/vectorization/ExpressionTemplates/DTIColumnCompareScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/DTIScalarArithmeticDTIColumnNoConvert.txt
ql/src/gen/vectorization/ExpressionTemplates/DTIScalarCompareColumn.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/Decimal64ColumnArithmeticDecimal64Column.txt [new file with mode: 0644]
ql/src/gen/vectorization/ExpressionTemplates/Decimal64ColumnArithmeticDecimal64Scalar.txt [new file with mode: 0644]
ql/src/gen/vectorization/ExpressionTemplates/Decimal64ScalarArithmeticDecimal64Column.txt [new file with mode: 0644]
ql/src/gen/vectorization/ExpressionTemplates/DecimalColumnUnaryFunc.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetween.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterColumnBetweenDynamicValue.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareColumn.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterColumnCompareScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterDecimal64ColumnCompareDecimal64Column.txt [new file with mode: 0644]
ql/src/gen/vectorization/ExpressionTemplates/FilterDecimal64ColumnCompareDecimal64Scalar.txt [new file with mode: 0644]
ql/src/gen/vectorization/ExpressionTemplates/FilterDecimal64ScalarCompareDecimal64Column.txt [new file with mode: 0644]
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/FilterStringGroupColumnCompareStringScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupColumnCompareTruncStringScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterStringGroupScalarCompareStringGroupColumnBase.txt
ql/src/gen/vectorization/ExpressionTemplates/FilterStringScalarCompareStringGroupColumn.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/FilterTruncStringScalarCompareStringGroupColumn.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/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/StringGroupColumnCompareStringScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/StringGroupColumnCompareTruncStringScalar.txt
ql/src/gen/vectorization/ExpressionTemplates/StringGroupScalarCompareStringGroupColumnBase.txt
ql/src/gen/vectorization/ExpressionTemplates/StringScalarCompareStringGroupColumn.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/TimestampScalarCompareLongDoubleColumn.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/VectorUDAFAvgDecimal.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFAvgDecimal64ToDecimal.txt [new file with mode: 0644]
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFAvgDecimalMerge.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFAvgMerge.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFAvgTimestamp.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMax.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxDecimal.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFMinMaxDecimal64.txt [new file with mode: 0644]
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/gen/vectorization/UDAFTemplates/VectorUDAFVarMerge.txt
ql/src/gen/vectorization/UDAFTemplates/VectorUDAFVarTimestamp.txt
ql/src/java/org/apache/hadoop/hive/ql/exec/Operator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/OperatorFactory.java
ql/src/java/org/apache/hadoop/hive/ql/exec/TableScanOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/spark/HashTableLoader.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAggregationDesc.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAppMasterEventOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorAssignRow.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorColumnSetInfo.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorDeserializeRow.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExpressionDescriptor.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExtractRow.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorFileSinkOperator.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/VectorGroupKeyHelper.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorHashKeyWrapperBatch.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorLimitOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinBaseOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOuterFilteredOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorReduceSinkOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSMBMapJoinOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSelectOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSerializeRow.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSparkHashTableSinkOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorSparkPartitionPruningSinkOperator.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/VectorizationOperator.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedExpressionsSupportDecimal64.java [moved from ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ISetLongArg.java with 78% similarity]
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedRowBatchCtx.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedSupport.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedUDAFs.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/AbstractFilterStringColLikeStringScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/BRoundWithNumDigitsDoubleToDouble.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/CastBooleanToStringViaLongToString.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/CastDateToString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToTimestamp.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/CastDecimalToBoolean.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/CastDecimalToDouble.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToLong.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDecimalToTimestamp.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/CastDoubleToDecimal.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/CastLongToDecimal.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastLongToString.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/CastStringGroupToString.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/CastStringToLong.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/CastTimestampToDate.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToDecimal.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/CharScalarConcatStringGroupCol.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/ConvertDecimal64ToDecimal.java [new file with mode: 0644]
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/Decimal64Util.java [new file with mode: 0644]
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/DynamicValueVectorExpression.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/FilterConstantBooleanVectorExpression.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/FuncBRoundWithNumDigitsDecimalToDecimal.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncBin.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/FuncHex.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncLogWithBaseDoubleToDouble.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncLogWithBaseLongToDouble.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/FuncPowerDoubleToDouble.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncPowerLongToDouble.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRand.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/FuncRandNoSeed.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/IfExprCharScalarStringGroupColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprCharScalarStringScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprColumnNull.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprConditionalFilter.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/IfExprNullColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprStringGroupColumnCharScalar.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/IfExprStringGroupColumnVarCharScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprStringScalarCharScalar.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/IfExprStringScalarVarCharScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprTimestampColumnColumn.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/IfExprTimestampColumnScalar.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/IfExprTimestampScalarColumn.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/IfExprTimestampScalarScalar.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/IfExprVarCharScalarStringGroupColumn.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprVarCharScalarStringScalar.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/OctetLength.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/StringGroupColConcatCharScalar.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/StringGroupColConcatVarCharScalar.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/StringHex.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringInitCap.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringLTrim.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/StringLower.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringRTrim.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/StringTrim.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/StringUpper.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/VarCharScalarConcatStringGroupCol.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/VectorInBloomFilterColDynamicValue.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/VectorUDFDateLong.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubColCol.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubColScalar.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateSubScalarCol.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDateTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthDate.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfMonthTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekDate.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFDayOfWeekTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourDate.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFHourTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteDate.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMinuteTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthDate.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFMonthTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondDate.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFSecondTimestamp.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/VectorUDFUnixTimeStampDate.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFUnixTimeStampTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearDate.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFWeekOfYearTimestamp.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearDate.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearString.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/VectorUDFYearTimestamp.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/VectorUDAFBloomFilter.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFBloomFilterMerge.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/VectorUDAFSumDecimal.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFSumDecimal64.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFSumDecimal64ToDecimal.java [new file with mode: 0644]
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/aggregates/VectorUDAFSumTimestamp.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/VectorMapJoinGenerateResultOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/mapjoin/VectorMapJoinInnerBigOnlyGenerateResultOperator.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/VectorMapJoinInnerGenerateResultOperator.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/VectorMapJoinLeftSemiGenerateResultOperator.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/VectorMapJoinOuterGenerateResultOperator.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/ptf/VectorPTFEvaluatorBase.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/ptf/VectorPTFOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkCommonOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkEmptyKeyOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkLongOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkMultiKeyOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkObjectHashOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkStringOperator.java
ql/src/java/org/apache/hadoop/hive/ql/exec/vector/reducesink/VectorReduceSinkUniformHashOperator.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/plan/AbstractOperatorDesc.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/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/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/PTFDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/ReduceSinkDesc.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/TableScanDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorGroupByDesc.java
ql/src/java/org/apache/hadoop/hive/ql/plan/VectorTableScanDesc.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFAverage.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFBloomFilter.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFCount.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFMax.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFMin.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFStd.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFStdSample.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFSum.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFVariance.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFVarianceSample.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqual.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqualOrGreaterThan.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPEqualOrLessThan.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPGreaterThan.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPLessThan.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPMinus.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPPlus.java
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/TestVectorLimitOperator.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSelectOperator.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorizationContext.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestConstantVectorExpression.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorDateExpressions.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorFilterExpressions.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorGenericDateExpressions.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorLogicalExpressions.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorMathFunctions.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorStringExpressions.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTimestampExpressions.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/expressions/TestVectorTypeCasts.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/mapjoin/MapJoinTestConfig.java
ql/src/test/org/apache/hadoop/hive/ql/exec/vector/util/FakeCaptureVectorToRowOutputOperator.java [new file with mode: 0644]
ql/src/test/org/apache/hadoop/hive/ql/optimizer/physical/TestVectorizer.java
ql/src/test/queries/clientpositive/acid_no_buckets.q
ql/src/test/queries/clientpositive/llap_acid.q
ql/src/test/queries/clientpositive/llap_acid_fast.q
ql/src/test/queries/clientpositive/llap_partitioned.q
ql/src/test/queries/clientpositive/mergejoin.q
ql/src/test/queries/clientpositive/spark_vectorized_dynamic_partition_pruning.q
ql/src/test/queries/clientpositive/vector_aggregate_without_gby.q
ql/src/test/queries/clientpositive/vector_bround.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_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_udf.q
ql/src/test/queries/clientpositive/vector_decimal_udf2.q
ql/src/test/queries/clientpositive/vector_groupby_grouping_sets1.q
ql/src/test/queries/clientpositive/vector_groupby_grouping_sets2.q
ql/src/test/queries/clientpositive/vector_groupby_grouping_sets3.q
ql/src/test/queries/clientpositive/vector_groupby_grouping_sets4.q
ql/src/test/queries/clientpositive/vector_groupby_grouping_sets5.q
ql/src/test/queries/clientpositive/vector_groupby_grouping_sets6.q
ql/src/test/queries/clientpositive/vector_groupby_grouping_sets_grouping.q
ql/src/test/queries/clientpositive/vector_groupby_grouping_sets_limit.q
ql/src/test/queries/clientpositive/vector_groupby_grouping_window.q
ql/src/test/queries/clientpositive/vector_groupby_rollup1.q
ql/src/test/queries/clientpositive/vector_outer_reference_windowed.q
ql/src/test/queries/clientpositive/vectorized_join46.q
ql/src/test/results/clientpositive/llap/acid_no_buckets.q.out
ql/src/test/results/clientpositive/llap/llap_acid.q.out
ql/src/test/results/clientpositive/llap/llap_acid_fast.q.out
ql/src/test/results/clientpositive/llap/llap_partitioned.q.out
ql/src/test/results/clientpositive/llap/llap_vector_nohybridgrace.q.out
ql/src/test/results/clientpositive/llap/mergejoin.q.out
ql/src/test/results/clientpositive/llap/schema_evol_orc_acidvec_part.q.out
ql/src/test/results/clientpositive/llap/schema_evol_orc_acidvec_table.q.out
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_adaptor_usage_mode.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_date_1.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_1.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_10_0.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_2.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_6.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_6b.q.out [new file with mode: 0644]
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_trailing.q.out
ql/src/test/results/clientpositive/llap/vector_decimal_udf.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_cube1.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id1.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id2.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_grouping_id3.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets1.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets2.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets3.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets4.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets5.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets6.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_grouping.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_grouping_sets_limit.q.out
ql/src/test/results/clientpositive/llap/vector_groupby_grouping_window.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_groupby_rollup1.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_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_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_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_ptf_part_simple.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_udf1.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/vector_windowing.q.out [new file with mode: 0644]
ql/src/test/results/clientpositive/llap/vector_windowing_expressions.q.out
ql/src/test/results/clientpositive/llap/vector_windowing_gby.q.out [new file with mode: 0644]
ql/src/test/results/clientpositive/llap/vector_windowing_gby2.q.out [new file with mode: 0644]
ql/src/test/results/clientpositive/llap/vector_windowing_multipartitioning.q.out [new file with mode: 0644]
ql/src/test/results/clientpositive/llap/vector_windowing_navfn.q.out
ql/src/test/results/clientpositive/llap/vector_windowing_order_null.q.out [new file with mode: 0644]
ql/src/test/results/clientpositive/llap/vector_windowing_range_multiorder.q.out [new file with mode: 0644]
ql/src/test/results/clientpositive/llap/vector_windowing_rank.q.out [new file with mode: 0644]
ql/src/test/results/clientpositive/llap/vector_windowing_streaming.q.out [new file with mode: 0644]
ql/src/test/results/clientpositive/llap/vector_windowing_windowspec.q.out [new file with mode: 0644]
ql/src/test/results/clientpositive/llap/vector_windowing_windowspec4.q.out [new file with mode: 0644]
ql/src/test/results/clientpositive/llap/vectorization_0.q.out
ql/src/test/results/clientpositive/llap/vectorization_1.q.out
ql/src/test/results/clientpositive/llap/vectorization_10.q.out
ql/src/test/results/clientpositive/llap/vectorization_11.q.out
ql/src/test/results/clientpositive/llap/vectorization_12.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_2.q.out
ql/src/test/results/clientpositive/llap/vectorization_3.q.out
ql/src/test/results/clientpositive/llap/vectorization_4.q.out
ql/src/test/results/clientpositive/llap/vectorization_5.q.out
ql/src/test/results/clientpositive/llap/vectorization_6.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_input_format_excludes.q.out [new file with mode: 0644]
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_dynamic_semijoin_reduction.q.out
ql/src/test/results/clientpositive/llap/vectorized_join46.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/llap_acid.q.out
ql/src/test/results/clientpositive/llap_acid_fast.q.out
ql/src/test/results/clientpositive/mergejoin.q.out
ql/src/test/results/clientpositive/parquet_no_row_serde.q.out
ql/src/test/results/clientpositive/spark/spark_vectorized_dynamic_partition_pruning.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_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_1.q.out
ql/src/test/results/clientpositive/spark/vectorization_10.q.out
ql/src/test/results/clientpositive/spark/vectorization_11.q.out
ql/src/test/results/clientpositive/spark/vectorization_12.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_2.q.out
ql/src/test/results/clientpositive/spark/vectorization_3.q.out
ql/src/test/results/clientpositive/spark/vectorization_4.q.out
ql/src/test/results/clientpositive/spark/vectorization_5.q.out
ql/src/test/results/clientpositive/spark/vectorization_6.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_input_format_excludes.q.out
ql/src/test/results/clientpositive/spark/vectorization_parquet_projection.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_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/explainuser_3.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_aggregate_9.q.out
ql/src/test/results/clientpositive/vector_aggregate_without_gby.q.out
ql/src/test/results/clientpositive/vector_between_columns.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_join.q.out
ql/src/test/results/clientpositive/vector_count.q.out
ql/src/test/results/clientpositive/vector_data_types.q.out
ql/src/test/results/clientpositive/vector_date_1.q.out
ql/src/test/results/clientpositive/vector_decimal_1.q.out
ql/src/test/results/clientpositive/vector_decimal_10_0.q.out
ql/src/test/results/clientpositive/vector_decimal_6.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_trailing.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_if_expr_2.q.out
ql/src/test/results/clientpositive/vector_include_no_sel.q.out
ql/src/test/results/clientpositive/vector_interval_1.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_left_outer_join.q.out
ql/src/test/results/clientpositive/vector_left_outer_join2.q.out
ql/src/test/results/clientpositive/vector_like_2.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_nvl.q.out
ql/src/test/results/clientpositive/vector_order_null.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_join6.q.out
ql/src/test/results/clientpositive/vector_outer_reference_windowed.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/vector_windowing.q.out
ql/src/test/results/clientpositive/vector_windowing_expressions.q.out
ql/src/test/results/clientpositive/vector_windowing_gby.q.out
ql/src/test/results/clientpositive/vector_windowing_gby2.q.out
ql/src/test/results/clientpositive/vector_windowing_multipartitioning.q.out
ql/src/test/results/clientpositive/vector_windowing_order_null.q.out
ql/src/test/results/clientpositive/vector_windowing_range_multiorder.q.out
ql/src/test/results/clientpositive/vector_windowing_rank.q.out
ql/src/test/results/clientpositive/vector_windowing_streaming.q.out
ql/src/test/results/clientpositive/vector_windowing_windowspec.q.out
ql/src/test/results/clientpositive/vector_windowing_windowspec4.q.out
ql/src/test/results/clientpositive/vectorization_1.q.out
ql/src/test/results/clientpositive/vectorization_10.q.out
ql/src/test/results/clientpositive/vectorization_11.q.out
ql/src/test/results/clientpositive/vectorization_12.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_2.q.out
ql/src/test/results/clientpositive/vectorization_3.q.out
ql/src/test/results/clientpositive/vectorization_4.q.out
ql/src/test/results/clientpositive/vectorization_5.q.out
ql/src/test/results/clientpositive/vectorization_6.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_input_format_excludes.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_parquet_projection.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/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_parquet_types.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
serde/src/java/org/apache/hadoop/hive/serde2/binarysortable/fast/BinarySortableSerializeWrite.java
serde/src/java/org/apache/hadoop/hive/serde2/fast/DeserializeRead.java
serde/src/java/org/apache/hadoop/hive/serde2/fast/SerializeWrite.java
serde/src/java/org/apache/hadoop/hive/serde2/lazy/fast/LazySimpleDeserializeRead.java
serde/src/java/org/apache/hadoop/hive/serde2/lazy/fast/LazySimpleSerializeWrite.java
serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/fast/LazyBinarySerializeWrite.java
storage-api/src/java/org/apache/hadoop/hive/common/type/DataTypePhysicalVariation.java [moved from ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/ISetDoubleArg.java with 79% similarity]
storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/ColumnVector.java
storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/Decimal64ColumnVector.java [new file with mode: 0644]
storage-api/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java
vector-code-gen/src/org/apache/hadoop/hive/tools/GenVectorCode.java

index 892ebfa..6631a6e 100644 (file)
@@ -2899,6 +2899,19 @@ public class HiveConf extends Configuration {
     HIVE_VECTORIZATION_ROW_IDENTIFIER_ENABLED("hive.vectorized.row.identifier.enabled", true,
         "This flag should be set to true to enable vectorization of ROW__ID."),
 
+    HIVE_VECTORIZED_INPUT_FORMAT_SUPPORTS_ENABLED(
+        "hive.vectorized.input.format.supports.enabled",
+        "decimal_64",
+        "Which vectorized input format support features are enabled for vectorization.\n" +
+        "That is, if a VectorizedInputFormat input format does support \"decimal_64\" for example\n" +
+        "this variable must enable that to be used in vectorization"),
+
+    HIVE_TEST_VECTORIZATION_ENABLED_OVERRIDE("hive.test.vectorized.execution.enabled.override",
+        "none", new StringSet("none", "enable", "disable"),
+        "internal use only, used to override the hive.vectorized.execution.enabled setting and\n" +
+        "turn off vectorization.  The default is false, or course",
+        true),
+
     HIVE_TYPE_CHECK_ON_INSERT("hive.typecheck.on.insert", true, "This property has been extended to control "
         + "whether to check, convert, and normalize partition value to conform to its column type in "
         + "partition operations including but not limited to insert, such as alter, describe etc."),
@@ -3641,6 +3654,10 @@ public class HiveConf extends Configuration {
       this(varname, defaultVal, validator, description, true, false, null);
     }
 
+    ConfVars(String varname, Object defaultVal, Validator validator, String description, boolean excluded) {
+      this(varname, defaultVal, validator, description, true, excluded, null);
+    }
+
     ConfVars(String varname, Object defaultVal, Validator validator, String description,
         boolean caseSensitive, boolean excluded, String altName) {
       this.varname = varname;
index e138fad..5ff2de3 100644 (file)
@@ -409,7 +409,6 @@ minillaplocal.shared.query.files=alter_merge_2_orc.q,\
   vectorized_casts.q,\
   vectorized_context.q,\
   vectorized_date_funcs.q,\
-  vectorized_distinct_gby.q,\
   vectorized_dynamic_partition_pruning.q,\
   vectorized_mapjoin.q,\
   vectorized_math_funcs.q,\
@@ -678,7 +677,19 @@ minillaplocal.query.files=\
   vector_partitioned_date_time.q,\
   vector_ptf_part_simple.q,\
   vector_udf1.q,\
+  vector_windowing.q,\
+  vector_windowing_expressions.q,\
+  vector_windowing_gby.q,\
+  vector_windowing_gby2.q,\
+  vector_windowing_multipartitioning.q,\
   vector_windowing_navfn.q,\
+  vector_windowing_order_null.q,\
+  vector_windowing_range_multiorder.q,\
+  vector_windowing_rank.q,\
+  vector_windowing_streaming.q,\
+  vector_windowing_windowspec.q,\
+  vector_windowing_windowspec4.q,\
+  vectorization_input_format_excludes.q,\
   vectorization_short_regress.q,\
   vectorized_dynamic_partition_pruning.q,\
   vectorized_dynamic_semijoin_reduction.q,\
index 1cf5f49..4dc107a 100644 (file)
@@ -202,8 +202,8 @@ public class LlapInputFormat implements InputFormat<NullWritable, VectorizedRowB
       virtualColumns = new VirtualColumn[0];
     }
     return new VectorizedRowBatchCtx(colNames.toArray(new String[colNames.size()]),
-        colTypes.toArray(new TypeInfo[colTypes.size()]), null, partitionColumnCount,
-        virtualColumns, new String[0]);
+        colTypes.toArray(new TypeInfo[colTypes.size()]), null, null, partitionColumnCount,
+        virtualColumns.length, virtualColumns, new String[0], null);
   }
 
   static TableScanOperator findTsOp(MapWork mapWork) throws HiveException {
index d8164a4..683bf83 100644 (file)
@@ -31,18 +31,22 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
 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) {
+  private final int colNum1;
+  private final int colNum2;
+
+  public <ClassName>(int colNum1, int colNum2, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum1 = colNum1;
     this.colNum2 = colNum2;
-    this.outputColumn = outputColumn;
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum1 = -1;
+    colNum2 = -1;
   }
 
   @Override
@@ -54,7 +58,7 @@ public class <ClassName> extends VectorExpression {
 
     <InputColumnVectorType1> inputColVector1 = (<InputColumnVectorType1>) batch.cols[colNum1];
     <InputColumnVectorType2> inputColVector2 = (<InputColumnVectorType2>) batch.cols[colNum2];
-    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
+    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumnNum];
     int[] sel = batch.selected;
     int n = batch.size;
     <OperandType1>[] vector1 = inputColVector1.vector;
@@ -129,38 +133,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "<ReturnType>";
-  }
-  
-  public int getColNum1() {
-    return colNum1;
-  }
-
-  public void setColNum1(int colNum1) {
-    this.colNum1 = colNum1;
-  }
-
-  public int getColNum2() {
-    return colNum2;
-  }
-
-  public void setColNum2(int colNum2) {
-    this.colNum2 = colNum2;
-  }
-
-  public void setOutputColumn(int outputColumn) {
-    this.outputColumn = outputColumn;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum1 + ", col " + + colNum2;
+    return getColumnParamString(0, colNum1) + ", " + getColumnParamString(1, colNum2);
   }
 
   @Override
index 31a015f..01386f0 100644 (file)
@@ -34,19 +34,21 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum1;
-  private int colNum2;
-  private int outputColumn;
+  private final int colNum1;
+  private final int colNum2;
 
-  public <ClassName>(int colNum1, int colNum2, int outputColumn) {
+  public <ClassName>(int colNum1, int colNum2, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum1 = colNum1;
     this.colNum2 = colNum2;
-    this.outputColumn = outputColumn;
-    this.outputType = "decimal";
   }
 
   public <ClassName>() {
-    this.outputType = "decimal";
+    super();
+
+    // Dummy final assignments.
+    colNum1 = -1;
+    colNum2 = -1;
   }
 
   @Override
@@ -58,7 +60,7 @@ public class <ClassName> extends VectorExpression {
 
     DecimalColumnVector inputColVector1 = (DecimalColumnVector) batch.cols[colNum1];
     DecimalColumnVector inputColVector2 = (DecimalColumnVector) batch.cols[colNum2];
-    DecimalColumnVector outputColVector = (DecimalColumnVector) batch.cols[outputColumn];
+    DecimalColumnVector outputColVector = (DecimalColumnVector) batch.cols[outputColumnNum];
     int[] sel = batch.selected;
     int n = batch.size;
     HiveDecimalWritable[] vector1 = inputColVector1.vector;
@@ -142,33 +144,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  public int getColNum1() {
-    return colNum1;
-  }
-
-  public void setColNum1(int colNum1) {
-    this.colNum1 = colNum1;
-  }
-
-  public int getColNum2() {
-    return colNum2;
-  }
-
-  public void setColNum2(int colNum2) {
-    this.colNum2 = colNum2;
-  }
-
-  public void setOutputColumn(int outputColumn) {
-    this.outputColumn = outputColumn;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum1 + ", col " + + colNum2;
+    return getColumnParamString(0, colNum1) + ", " + getColumnParamString(1, colNum2);
   }
 
   @Override
index 2cc1aa2..335b4da 100644 (file)
@@ -33,17 +33,21 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  private <OperandType2> value;
-  private int outputColumn;
+  private final int colNum;
+  private final <OperandType2> value;
 
-  public <ClassName>(int colNum, <OperandType2> value, int outputColumn) {
+  public <ClassName>(int colNum, <OperandType2> value, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum = colNum;
     this.value = value;
-    this.outputColumn = outputColumn;
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum = -1;
+    value = 0;
   }
 
   @Override
@@ -54,7 +58,7 @@ public class <ClassName> extends VectorExpression {
     }
 
     <InputColumnVectorType> inputColVector = (<InputColumnVectorType>) batch.cols[colNum];
-    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
+    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumnNum];
     int[] sel = batch.selected;
     boolean[] inputIsNull = inputColVector.isNull;
     boolean[] outputIsNull = outputColVector.isNull;
@@ -99,43 +103,13 @@ public class <ClassName> extends VectorExpression {
         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 "<ReturnType>";
-  }
-  
-  public int getColNum() {
-    return colNum;
-  }
-  
-  public void setColNum(int colNum) {
-    this.colNum = colNum;
-  }
-
-  public <OperandType2> getValue() {
-    return value;
-  }
 
-  public void setValue(<OperandType2> value) {
-    this.value = value;
-  }
-
-  public void setOutputColumn(int outputColumn) {
-    this.outputColumn = outputColumn;
+    NullUtil.setNullOutputEntriesColScalar(outputColVector, batch.selectedInUse, sel, n);
   }
 
   @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum + ", val " + value;
+    return getColumnParamString(0, colNum) + ", val " + value;
   }
 
   @Override
index 294bb4f..54302b0 100644 (file)
@@ -35,19 +35,21 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  private HiveDecimal value;
-  private int outputColumn;
+  private final int colNum;
+  private final HiveDecimal value;
 
-  public <ClassName>(int colNum, HiveDecimal value, int outputColumn) {
+  public <ClassName>(int colNum, HiveDecimal value, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum = colNum;
     this.value = value;
-    this.outputColumn = outputColumn;
-    this.outputType = "decimal";
   }
 
   public <ClassName>() {
-    this.outputType = "decimal";
+    super();
+
+    // Dummy final assignments.
+    colNum = -1;
+    value = null;
   }
 
   @Override
@@ -58,7 +60,7 @@ public class <ClassName> extends VectorExpression {
     }
 
     DecimalColumnVector inputColVector = (DecimalColumnVector) batch.cols[colNum];
-    DecimalColumnVector outputColVector = (DecimalColumnVector) batch.cols[outputColumn];
+    DecimalColumnVector outputColVector = (DecimalColumnVector) batch.cols[outputColumnNum];
     int[] sel = batch.selected;
     boolean[] inputIsNull = inputColVector.isNull;
     boolean[] outputIsNull = outputColVector.isNull;
@@ -127,13 +129,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum + ", val " + value.toString();
+    return getColumnParamString(0, colNum) + ", val " + value.toString();
   }
 
   @Override
index cbc97da..c8dd4ab 100644 (file)
@@ -31,18 +31,22 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
 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) {
+  private final int colNum1;
+  private final int colNum2;
+
+  public <ClassName>(int colNum1, int colNum2, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum1 = colNum1;
     this.colNum2 = colNum2;
-    this.outputColumn = outputColumn;
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum1 = -1;
+    colNum2 = -1;
   }
 
   @Override
@@ -54,7 +58,7 @@ public class <ClassName> extends VectorExpression {
 
     <InputColumnVectorType1> inputColVector1 = (<InputColumnVectorType1>) batch.cols[colNum1];
     <InputColumnVectorType2> inputColVector2 = (<InputColumnVectorType2>) batch.cols[colNum2];
-    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
+    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumnNum];
     int[] sel = batch.selected;
     int n = batch.size;
     <OperandType1>[] vector1 = inputColVector1.vector;
@@ -127,38 +131,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "<ReturnType>";
-  }
-  
-  public int getColNum1() {
-    return colNum1;
-  }
-
-  public void setColNum1(int colNum1) {
-    this.colNum1 = colNum1;
-  }
-
-  public int getColNum2() {
-    return colNum2;
-  }
-
-  public void setColNum2(int colNum2) {
-    this.colNum2 = colNum2;
-  }
-
-  public void setOutputColumn(int outputColumn) {
-    this.outputColumn = outputColumn;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum1 + ", col " + + colNum2;
+    return getColumnParamString(0, colNum1) + ", " + getColumnParamString(1, colNum2);
   }
 
   @Override
index 6568d1c..72919a1 100644 (file)
@@ -33,17 +33,21 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  private <OperandType2> value;
-  private int outputColumn;
+  private final int colNum;
+  private final <OperandType2> value;
 
-  public <ClassName>(int colNum, <OperandType2> value, int outputColumn) {
+  public <ClassName>(int colNum, <OperandType2> value, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum = colNum;
     this.value = value;
-    this.outputColumn = outputColumn;
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum = -1;
+    value = 0;
   }
 
   @Override
@@ -54,7 +58,7 @@ public class <ClassName> extends VectorExpression {
     }
 
     <InputColumnVectorType> inputColVector = (<InputColumnVectorType>) batch.cols[colNum];
-    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
+    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumnNum];
     int[] sel = batch.selected;
     boolean[] nullPos = inputColVector.isNull;
     boolean[] outNulls = outputColVector.isNull;
@@ -119,38 +123,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "<ReturnType>";
-  }
-  
-  public int getColNum() {
-    return colNum;
-  }
-  
-  public void setColNum(int colNum) {
-    this.colNum = colNum;
-  }
-
-  public <OperandType2> getValue() {
-    return value;
-  }
-
-  public void setValue(<OperandType2> value) {
-    this.value = value;
-  }
-
-  public void setOutputColumn(int outputColumn) {
-    this.outputColumn = outputColumn;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum + ", val " + value;
+    return getColumnParamString(0, colNum) + ", val " + value;
   }
 
   @Override
index 04b533a..8b586b1 100644 (file)
@@ -32,17 +32,21 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum1;
-  private int colNum2;
-  private int outputColumn;
+  private final int colNum1;
+  private final int colNum2;
 
-  public <ClassName>(int colNum1, int colNum2, int outputColumn) {
+  public <ClassName>(int colNum1, int colNum2, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum1 = colNum1;
     this.colNum2 = colNum2;
-    this.outputColumn = outputColumn;
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum1 = -1;
+    colNum2 = -1;
   }
 
   @Override
@@ -54,7 +58,7 @@ public class <ClassName> extends VectorExpression {
 
     <InputColumnVectorType1> inputColVector1 = (<InputColumnVectorType1>) batch.cols[colNum1];
     <InputColumnVectorType2> inputColVector2 = (<InputColumnVectorType2>) batch.cols[colNum2];
-    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
+    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumnNum];
     int[] sel = batch.selected;
     int n = batch.size;
     <OperandType1>[] vector1 = inputColVector1.vector;
@@ -154,38 +158,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "<ReturnType>";
-  }
-
-  public int getColNum1() {
-    return colNum1;
-  }
-
-  public void setColNum1(int colNum1) {
-    this.colNum1 = colNum1;
-  }
-
-  public int getColNum2() {
-    return colNum2;
-  }
-
-  public void setColNum2(int colNum2) {
-    this.colNum2 = colNum2;
-  }
-
-  public void setOutputColumn(int outputColumn) {
-    this.outputColumn = outputColumn;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum1 + ", col " + + colNum2;
+    return getColumnParamString(0, colNum1) + ", " + getColumnParamString(1, colNum2);
   }
 
   @Override
index 68c4f58..722834a 100644 (file)
@@ -34,19 +34,21 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum1;
-  private int colNum2;
-  private int outputColumn;
+  private final int colNum1;
+  private final int colNum2;
 
-  public <ClassName>(int colNum1, int colNum2, int outputColumn) {
+  public <ClassName>(int colNum1, int colNum2, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum1 = colNum1;
     this.colNum2 = colNum2;
-    this.outputColumn = outputColumn;
-    this.outputType = "decimal";
   }
 
   public <ClassName>() {
-    this.outputType = "decimal";
+    super();
+
+    // Dummy final assignments.
+    colNum1 = -1;
+    colNum2 = -1;
   }
 
   @Override
@@ -58,7 +60,7 @@ public class <ClassName> extends VectorExpression {
 
     DecimalColumnVector inputColVector1 = (DecimalColumnVector) batch.cols[colNum1];
     DecimalColumnVector inputColVector2 = (DecimalColumnVector) batch.cols[colNum2];
-    DecimalColumnVector outputColVector = (DecimalColumnVector) batch.cols[outputColumn];
+    DecimalColumnVector outputColVector = (DecimalColumnVector) batch.cols[outputColumnNum];
     int[] sel = batch.selected;
     int n = batch.size;
     HiveDecimalWritable[] vector1 = inputColVector1.vector;
@@ -134,13 +136,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum1 + ", col " + + colNum2;
+    return getColumnParamString(0, colNum1) + ", " + getColumnParamString(1, colNum2);
   }
 
   @Override
index 25e0d85..3f996d9 100644 (file)
@@ -33,17 +33,21 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  private <OperandType2> value;
-  private int outputColumn;
+  private final int colNum;
+  private final <OperandType2> value;
 
-  public <ClassName>(int colNum, <OperandType2> value, int outputColumn) {
+  public <ClassName>(int colNum, <OperandType2> value, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum = colNum;
     this.value = value;
-    this.outputColumn = outputColumn;
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum = -1;
+    value = 0;
   }
 
   @Override
@@ -54,7 +58,7 @@ public class <ClassName> extends VectorExpression {
     }
 
     <InputColumnVectorType> inputColVector = (<InputColumnVectorType>) batch.cols[colNum];
-    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
+    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumnNum];
     int[] sel = batch.selected;
     boolean[] inputIsNull = inputColVector.isNull;
     boolean[] outputIsNull = outputColVector.isNull;
@@ -109,38 +113,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "<ReturnType>";
-  }
-
-  public int getColNum() {
-    return colNum;
-  }
-
-  public void setColNum(int colNum) {
-    this.colNum = colNum;
-  }
-
-  public <OperandType2> getValue() {
-    return value;
-  }
-
-  public void setValue(<OperandType2> value) {
-    this.value = value;
-  }
-
-  public void setOutputColumn(int outputColumn) {
-    this.outputColumn = outputColumn;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum + ", val " + value;
+    return getColumnParamString(0, colNum) + ", val " + value;
   }
 
   @Override
index 0728f6c..515cd40 100644 (file)
@@ -35,19 +35,21 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  private HiveDecimal value;
-  private int outputColumn;
+  private final int colNum;
+  private final HiveDecimal value;
 
-  public <ClassName>(int colNum, HiveDecimal value, int outputColumn) {
+  public <ClassName>(int colNum, HiveDecimal value, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum = colNum;
     this.value = value;
-    this.outputColumn = outputColumn;
-    this.outputType = "decimal";
   }
 
   public <ClassName>() {
-    this.outputType = "decimal";
+    super();
+
+    // Dummy final assignments.
+    colNum = -1;
+    value = null;
   }
 
   @Override
@@ -58,7 +60,7 @@ public class <ClassName> extends VectorExpression {
     }
 
     DecimalColumnVector inputColVector = (DecimalColumnVector) batch.cols[colNum];
-    DecimalColumnVector outputColVector = (DecimalColumnVector) batch.cols[outputColumn];
+    DecimalColumnVector outputColVector = (DecimalColumnVector) batch.cols[outputColumnNum];
     int[] sel = batch.selected;
     boolean[] inputIsNull = inputColVector.isNull;
     boolean[] outputIsNull = outputColVector.isNull;
@@ -133,13 +135,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum + ", val " + value.toString();
+    return getColumnParamString(0, colNum) + ", val " + value.toString();
   }
 
   @Override
index efbf1ba..dacc935 100644 (file)
@@ -27,17 +27,18 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
 public class <ClassName> extends VectorExpression {
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  private int outputColumn;
+  private final int colNum;
 
-  public <ClassName>(int colNum, int outputColumn) {
-    this();
+  public <ClassName>(int colNum, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum = colNum;
-    this.outputColumn = outputColumn;
   }
-  
+
   public <ClassName>() {
     super();
+
+    // Dummy final assignments.
+    colNum = -1;
   }
 
   @Override
@@ -48,7 +49,7 @@ public class <ClassName> extends VectorExpression {
     }
 
     <InputColumnVectorType> inputColVector = (<InputColumnVectorType>) batch.cols[colNum];
-    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
+    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumnNum];
     int[] sel = batch.selected;
     boolean[] inputIsNull = inputColVector.isNull;
     boolean[] outputIsNull = outputColVector.isNull;
@@ -100,30 +101,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-  
-  @Override
-  public String getOutputType() {
-    return "<ReturnType>";
-  }
-  
-  public int getColNum() {
-    return colNum;
-  }
-
-  public void setColNum(int colNum) {
-    this.colNum = colNum;
-  }
-
-  public void setOutputColumn(int outputColumn) {
-    this.outputColumn = outputColumn;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum;
+    return getColumnParamString(0, colNum);
   }
 
   @Override
index 6574267..7a9fa85 100644 (file)
@@ -30,17 +30,18 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  private int outputColumn;
+  private final int colNum;
 
-  public <ClassName>(int colNum, int outputColumn) {
-    this();
+  public <ClassName>(int colNum, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum = colNum;
-    this.outputColumn = outputColumn;
   }
 
   public <ClassName>() {
     super();
+
+    // Dummy final assignments.
+    colNum = -1;
   }
 
   @Override
@@ -51,7 +52,7 @@ public class <ClassName> extends VectorExpression {
     }
 
     <InputColumnVectorType> inputColVector = (<InputColumnVectorType>) batch.cols[colNum];
-    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
+    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumnNum];
     int[] sel = batch.selected;
     boolean[] inputIsNull = inputColVector.isNull;
     boolean[] outputIsNull = outputColVector.isNull;
@@ -102,30 +103,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-  
-  @Override
-  public String getOutputType() {
-    return "<ReturnType>";
-  }
-  
-  public int getColNum() {
-    return colNum;
-  }
-
-  public void setColNum(int colNum) {
-    this.colNum = colNum;
-  }
-
-  public void setOutputColumn(int outputColumn) {
-    this.outputColumn = outputColumn;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum;
+    return getColumnParamString(0, colNum);
   }
 
   @Override
index fe8f535..30e3b7d 100644 (file)
@@ -36,8 +36,8 @@ public class <ClassName> extends LongCol<OperatorName>LongColumn {
 
   private static final long serialVersionUID = 1L;
 
-  public <ClassName>(int colNum1, int colNum2, int outputColumn) {
-    super(colNum1, colNum2, outputColumn);
+  public <ClassName>(int colNum1, int colNum2, int outputColumnNum) {
+    super(colNum1, colNum2, outputColumnNum);
   }
 
   public <ClassName>() {
@@ -58,5 +58,3 @@ public class <ClassName> extends LongCol<OperatorName>LongColumn {
             VectorExpressionDescriptor.InputExpressionType.COLUMN).build();
   }
 }
-
-
index 293369f..2b46798 100644 (file)
@@ -31,8 +31,8 @@ public class <ClassName> extends LongCol<OperatorName>LongScalar {
 
   private static final long serialVersionUID = 1L;
 
-  public <ClassName>(int colNum, long value, int outputColumn) {
-    super(colNum, value, outputColumn);
+  public <ClassName>(int colNum, long value, int outputColumnNum) {
+    super(colNum, value, outputColumnNum);
   }
 
   public <ClassName>() {
index 60884cd..3d05eaa 100644 (file)
@@ -31,8 +31,8 @@ public class <ClassName> extends <BaseClassName> {
 
   private static final long serialVersionUID = 1L;
 
-  public <ClassName>(int colNum, long value, int outputColumn) {
-    super(colNum, value, outputColumn);
+  public <ClassName>(int colNum, long value, int outputColumnNum) {
+    super(colNum, value, outputColumnNum);
   }
 
   public <ClassName>() {
index 04607f6..11ceb17 100644 (file)
@@ -36,8 +36,8 @@ public class <ClassName> extends LongScalar<OperatorName>LongColumn {
 
   private static final long serialVersionUID = 1L;
 
-  public <ClassName>(long value, int colNum, int outputColumn) {
-    super(value, colNum, outputColumn);
+  public <ClassName>(long value, int colNum, int outputColumnNum) {
+    super(value, colNum, outputColumnNum);
   }
 
   public <ClassName>() {
index d518c44..e4d2b3a 100644 (file)
@@ -36,8 +36,8 @@ public class <ClassName> extends <BaseClassName> {
 
   private static final long serialVersionUID = 1L;
 
-  public <ClassName>(long value, int colNum, int outputColumn) {
-    super(value, colNum, outputColumn);
+  public <ClassName>(long value, int colNum, int outputColumnNum) {
+    super(value, colNum, outputColumnNum);
   }
 
   public <ClassName>() {
index 2a9f947..1ee059f 100644 (file)
@@ -36,24 +36,26 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum1;
-  private int colNum2;
-  private int outputColumn;
-  private Date scratchDate1;
-  private HiveIntervalYearMonth scratchIntervalYearMonth2;
-  private Date outputDate;
-  private DateTimeMath dtm = new DateTimeMath();
-
-  public <ClassName>(int colNum1, int colNum2, int outputColumn) {
+  private final int colNum1;
+  private final int colNum2;
+
+  private transient final Date scratchDate1 = new Date(0);
+  private transient final HiveIntervalYearMonth scratchIntervalYearMonth2 = new HiveIntervalYearMonth();
+  private transient final Date outputDate = new Date(0);
+  private transient final DateTimeMath dtm = new DateTimeMath();
+
+  public <ClassName>(int colNum1, int colNum2, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum1 = colNum1;
     this.colNum2 = colNum2;
-    this.outputColumn = outputColumn;
-    scratchDate1 = new Date(0);
-    scratchIntervalYearMonth2 = new HiveIntervalYearMonth();
-    outputDate = new Date(0);
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum1 = -1;
+    colNum2 = -1;
   }
 
   @Override
@@ -70,7 +72,7 @@ public class <ClassName> extends VectorExpression {
     LongColumnVector inputColVector2 = (LongColumnVector) batch.cols[colNum2];
 
     // Output is type date.
-    LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
+    LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumnNum];
 
     int[] sel = batch.selected;
     int n = batch.size;
@@ -171,18 +173,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "long";
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum1 + ", col " + + colNum2;
+    return getColumnParamString(0, colNum1) + ", " + getColumnParamString(1, colNum2);
   }
 
   @Override
index 4bbc358..7dadd73 100644 (file)
@@ -37,22 +37,25 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  private HiveIntervalYearMonth value;
-  private int outputColumn;
-  private Date scratchDate1;
-  private Date outputDate;
-  private DateTimeMath dtm = new DateTimeMath();
-
-  public <ClassName>(int colNum, long value, int outputColumn) {
+  private final int colNum;
+  private final HiveIntervalYearMonth value;
+
+  private transient final Date scratchDate1 = new Date(0);
+  private transient final Date outputDate = new Date(0);
+  private transient final DateTimeMath dtm = new DateTimeMath();
+
+  public <ClassName>(int colNum, long value, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum = colNum;
     this.value = new HiveIntervalYearMonth((int) value);
-    this.outputColumn = outputColumn;
-    scratchDate1 = new Date(0);
-    outputDate = new Date(0);
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum = -1;
+    value = null;
   }
 
   @Override
@@ -66,7 +69,7 @@ public class <ClassName> extends VectorExpression {
     LongColumnVector inputColVector1 = (LongColumnVector) batch.cols[colNum];
 
     // Output is type date.
-    LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
+    LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumnNum];
 
     int[] sel = batch.selected;
     boolean[] inputIsNull = inputColVector1.isNull;
@@ -131,18 +134,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "long";
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum + ", val " + value;
+    return getColumnParamString(0, colNum) + ", val " + value;
   }
 
   @Override
index 2e66b3a..29eabfd 100644 (file)
@@ -37,20 +37,24 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum1;
-  private int colNum2;
-  private int outputColumn;
-  private Timestamp scratchTimestamp1;
-  private DateTimeMath dtm = new DateTimeMath();
+  private final int colNum1;
+  private final int colNum2;
 
-  public <ClassName>(int colNum1, int colNum2, int outputColumn) {
+  private transient final Timestamp scratchTimestamp1 = new Timestamp(0);
+  private transient final DateTimeMath dtm = new DateTimeMath();
+
+  public <ClassName>(int colNum1, int colNum2, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum1 = colNum1;
     this.colNum2 = colNum2;
-    this.outputColumn = outputColumn;
-    scratchTimestamp1 = new Timestamp(0);
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum1 = -1;
+    colNum2 = -1;
   }
 
   @Override
@@ -67,7 +71,7 @@ public class <ClassName> extends VectorExpression {
     <InputColumnVectorType2> inputColVector2 = (<InputColumnVectorType2>) batch.cols[colNum2];
 
     // Output is type <ReturnType>.
-    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
+    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumnNum];
 
     int[] sel = batch.selected;
     int n = batch.size;
@@ -160,18 +164,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "<ReturnType>";
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum1 + ", col " + + colNum2;
+    return getColumnParamString(0, colNum1) + ", " + getColumnParamString(1, colNum2);
   }
 
   @Override
index e679449..67d748b 100644 (file)
@@ -38,20 +38,24 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  private <HiveOperandType2> value;
-  private int outputColumn;
-  private Timestamp scratchTimestamp1;
-  private DateTimeMath dtm = new DateTimeMath();
+  private final int colNum;
+  private final <HiveOperandType2> value;
 
-  public <ClassName>(int colNum, <HiveOperandType2> value, int outputColumn) {
+  private transient final Timestamp scratchTimestamp1 = new Timestamp(0);
+  private transient final DateTimeMath dtm = new DateTimeMath();
+
+  public <ClassName>(int colNum, <HiveOperandType2> value, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum = colNum;
     this.value = value;
-    this.outputColumn = outputColumn;
-    scratchTimestamp1 = new Timestamp(0);
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum = -1;
+    value = null;
   }
 
   @Override
@@ -65,7 +69,7 @@ public class <ClassName> extends VectorExpression {
     LongColumnVector inputColVector1 = (LongColumnVector) batch.cols[colNum];
 
     // Output is type <ReturnType>.
-    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
+    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumnNum];
 
     int[] sel = batch.selected;
     boolean[] inputIsNull = inputColVector1.isNull;
@@ -129,18 +133,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "<ReturnType>";
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum + ", val " + value.toString();
+    return getColumnParamString(0, colNum) + ", val " + value.toString();
   }
 
   @Override
index e23dc27..8950794 100644 (file)
@@ -46,22 +46,25 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  private Date value;
-  private int outputColumn;
-  private HiveIntervalYearMonth scratchIntervalYearMonth2;
-  private Date outputDate;
-  private DateTimeMath dtm = new DateTimeMath();
-
-  public <ClassName>(long value, int colNum, int outputColumn) {
-    this.colNum = colNum;
+  private final int colNum;
+  private final Date value;
+
+  private transient final HiveIntervalYearMonth scratchIntervalYearMonth2 = new HiveIntervalYearMonth();
+  private transient final Date outputDate = new Date(0);
+  private transient final DateTimeMath dtm = new DateTimeMath();
+
+  public <ClassName>(long value, int colNum, int outputColumnNum) {
+    super(outputColumnNum);
     this.value = new Date(DateWritable.daysToMillis((int) value));
-    this.outputColumn = outputColumn;
-    scratchIntervalYearMonth2 = new HiveIntervalYearMonth();
-    outputDate = new Date(0);
+    this.colNum = colNum;
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    value = null;
+    colNum = -1;
   }
 
   @Override
@@ -80,7 +83,7 @@ public class <ClassName> extends VectorExpression {
     LongColumnVector inputColVector2 = (LongColumnVector) batch.cols[colNum];
 
     // Output is type Date.
-    LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumn];
+    LongColumnVector outputColVector = (LongColumnVector) batch.cols[outputColumnNum];
 
     int[] sel = batch.selected;
     boolean[] inputIsNull = inputColVector2.isNull;
@@ -145,18 +148,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "long";
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "val " + value + ", col " + + colNum;
+    return "val " + value + ", " + getColumnParamString(1, colNum);
   }
 
   @Override
index 85d88fd..4b9614f 100644 (file)
@@ -46,20 +46,25 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  private Timestamp value;
-  private int outputColumn;
-  private DateTimeMath dtm = new DateTimeMath();
+  private final Timestamp value;
+  private final int colNum;
 
-  public <ClassName>(long value, int colNum, int outputColumn) {
-    this.colNum = colNum;
+  private transient final DateTimeMath dtm = new DateTimeMath();
+
+  public <ClassName>(long value, int colNum, int outputColumnNum) {
+    super(outputColumnNum);
     // Scalar input #1 is type date (days).  For the math we convert it to a timestamp.
     this.value = new Timestamp(0);
     this.value.setTime(DateWritable.daysToMillis((int) value));
-    this.outputColumn = outputColumn;
+    this.colNum = colNum;
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    value = null;
+    colNum = -1;
   }
 
   @Override
@@ -78,7 +83,7 @@ public class <ClassName> extends VectorExpression {
     <InputColumnVectorType2> inputColVector2 = (<InputColumnVectorType2>) batch.cols[colNum];
 
     // Output is type <ReturnType>.
-    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
+    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumnNum];
 
     int[] sel = batch.selected;
     boolean[] inputIsNull = inputColVector2.isNull;
@@ -136,18 +141,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "<ReturnType>";
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "val " + value + ", col " + + colNum;
+    return "val " + value + ", " + getColumnParamString(1, colNum);
   }
 
   @Override
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/Decimal64ColumnArithmeticDecimal64Column.txt b/ql/src/gen/vectorization/ExpressionTemplates/Decimal64ColumnArithmeticDecimal64Column.txt
new file mode 100644 (file)
index 0000000..a5247c4
--- /dev/null
@@ -0,0 +1,203 @@
+/**
+ * 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.Decimal64ColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.NullUtil;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.Decimal64Util;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
+import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
+
+/**
+ * Generated from template Decimal64ColumnArithmeticDecimal64Column.txt, which covers
+ * decimal64 arithmetic expressions between columns.
+ */
+public class <ClassName> extends VectorExpression {
+
+  private static final long serialVersionUID = 1L;
+
+  private final int colNum1;
+  private final int colNum2;
+
+  public <ClassName>(int colNum1, int colNum2, int outputColumnNum) {
+    super(outputColumnNum);
+    this.colNum1 = colNum1;
+    this.colNum2 = colNum2;
+  }
+
+  public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum1 = -1;
+    colNum2 = -1;
+  }
+
+  @Override
+  public void evaluate(VectorizedRowBatch batch) {
+
+    if (childExpressions != null) {
+      super.evaluateChildren(batch);
+    }
+
+    Decimal64ColumnVector inputColVector1 = (Decimal64ColumnVector) batch.cols[colNum1];
+    Decimal64ColumnVector inputColVector2 = (Decimal64ColumnVector) batch.cols[colNum2];
+    Decimal64ColumnVector outputColVector = (Decimal64ColumnVector) batch.cols[outputColumnNum];
+    int[] sel = batch.selected;
+    int n = batch.size;
+    long[] vector1 = inputColVector1.vector;
+    long[] vector2 = inputColVector2.vector;
+    long[] outputVector = outputColVector.vector;
+    boolean[] outputIsNull = outputColVector.isNull;
+
+    // return immediately if batch is empty
+    if (n == 0) {
+      return;
+    }
+
+    final long outputDecimal64AbsMax =
+        HiveDecimalWritable.getDecimal64AbsMax(outputColVector.precision);
+
+    outputColVector.isRepeating =
+         inputColVector1.isRepeating && inputColVector2.isRepeating
+      || inputColVector1.isRepeating && !inputColVector1.noNulls && inputColVector1.isNull[0]
+      || inputColVector2.isRepeating && !inputColVector2.noNulls && inputColVector2.isNull[0];
+
+    if (inputColVector1.noNulls && inputColVector2.noNulls) {
+
+      /*
+       * Initialize output vector NULL values to false. This is necessary
+       * since the decimal operation may produce a NULL result even for
+       * a non-null input vector value, and convert the output vector
+       * to have noNulls = false;
+       */
+      NullUtil.initOutputNullsToFalse(outputColVector,
+          inputColVector1.isRepeating && inputColVector2.isRepeating,
+          batch.selectedInUse, sel, n);
+    }
+
+    // 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) {
+      final long result = vector1[0] <OperatorSymbol> vector2[0];
+      outputVector[0] = result;
+      if (Math.abs(result) > outputDecimal64AbsMax) {
+        outputColVector.noNulls = false;
+        outputIsNull[0] = true;
+      }
+    } else if (inputColVector1.isRepeating) {
+      final long repeatedValue1 = vector1[0];
+      if (batch.selectedInUse) {
+        for(int j = 0; j != n; j++) {
+          int i = sel[j];
+          final long result = repeatedValue1 <OperatorSymbol> vector2[i];
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      } else {
+        for(int i = 0; i != n; i++) {
+          final long result = repeatedValue1 <OperatorSymbol> vector2[i];
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      }
+    } else if (inputColVector2.isRepeating) {
+      final long repeatedValue2 = vector2[0];
+      if (batch.selectedInUse) {
+        for(int j = 0; j != n; j++) {
+          int i = sel[j];
+          final long result = vector1[i] <OperatorSymbol> repeatedValue2;
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      } else {
+        for(int i = 0; i != n; i++) {
+          final long result = vector1[i] <OperatorSymbol> repeatedValue2;
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      }
+    } else {
+      if (batch.selectedInUse) {
+        for(int j = 0; j != n; j++) {
+          int i = sel[j];
+          final long result = vector1[i] <OperatorSymbol> vector2[i];
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      } else {
+        for(int i = 0; i != n; i++) {
+          final long result = vector1[i] <OperatorSymbol> vector2[i];
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      }
+    }
+
+    // Currently, we defer division, etc to regular HiveDecimal so we don't do any null
+    // default value setting here.
+  }
+
+  @Override
+  public String vectorExpressionParameters() {
+    return getColumnParamString(0, colNum1) + ", " + getColumnParamString(1, colNum2);
+  }
+
+  @Override
+  public VectorExpressionDescriptor.Descriptor getDescriptor() {
+    return (new VectorExpressionDescriptor.Builder())
+        .setMode(
+            VectorExpressionDescriptor.Mode.PROJECTION)
+        .setNumArguments(2)
+        .setArgumentTypes(
+            VectorExpressionDescriptor.ArgumentType.DECIMAL_64,
+            VectorExpressionDescriptor.ArgumentType.DECIMAL_64)
+        .setInputExpressionTypes(
+            VectorExpressionDescriptor.InputExpressionType.COLUMN,
+            VectorExpressionDescriptor.InputExpressionType.COLUMN).build();
+  }
+}
\ No newline at end of file
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/Decimal64ColumnArithmeticDecimal64Scalar.txt b/ql/src/gen/vectorization/ExpressionTemplates/Decimal64ColumnArithmeticDecimal64Scalar.txt
new file mode 100644 (file)
index 0000000..f8647b2
--- /dev/null
@@ -0,0 +1,180 @@
+/**
+ * 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.Decimal64ColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.NullUtil;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.Decimal64Util;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
+import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
+import org.apache.hadoop.hive.serde2.typeinfo.DecimalTypeInfo;
+
+/**
+ * Generated from template ColumnArithmeticScalar.txt, which covers decimal64 arithmetic
+ * expressions between a column and a scalar.
+ */
+public class <ClassName> extends VectorExpression {
+
+  private static final long serialVersionUID = 1L;
+
+  private final int colNum;
+  private final long value;
+
+  public <ClassName>(int colNum, long value, int outputColumnNum) {
+    super(outputColumnNum);
+    this.colNum = colNum;
+    this.value = value;
+  }
+
+  public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum = -1;
+    value = 0;
+  }
+
+  @Override
+  public void evaluate(VectorizedRowBatch batch) {
+
+    if (childExpressions != null) {
+      super.evaluateChildren(batch);
+    }
+
+    Decimal64ColumnVector inputColVector = (Decimal64ColumnVector) batch.cols[colNum];
+    Decimal64ColumnVector outputColVector = (Decimal64ColumnVector) batch.cols[outputColumnNum];
+    int[] sel = batch.selected;
+    boolean[] inputIsNull = inputColVector.isNull;
+    boolean[] outputIsNull = outputColVector.isNull;
+    outputColVector.noNulls = inputColVector.noNulls;
+    outputColVector.isRepeating = inputColVector.isRepeating;
+    int n = batch.size;
+    long[] vector = inputColVector.vector;
+    long[] outputVector = outputColVector.vector;
+
+    // return immediately if batch is empty
+    if (n == 0) {
+      return;
+    }
+
+    final long outputDecimal64AbsMax =
+        HiveDecimalWritable.getDecimal64AbsMax(outputColVector.precision);
+
+    if (inputColVector.noNulls) {
+
+      /*
+       * Initialize output vector NULL values to false. This is necessary
+       * since the decimal operation may produce a NULL result even for
+       * a non-null input vector value, and convert the output vector
+       * to have noNulls = false;
+       */
+      NullUtil.initOutputNullsToFalse(outputColVector, inputColVector.isRepeating,
+          batch.selectedInUse, sel, n);
+    }
+
+    if (inputColVector.isRepeating) {
+      if (!inputColVector.noNulls) {
+        outputIsNull[0] = inputIsNull[0];
+      }
+      // The following may override a "false" null setting if an error or overflow occurs.
+      final long result = vector[0] <OperatorSymbol> value;
+      outputVector[0] = result;
+      if (Math.abs(result) > outputDecimal64AbsMax) {
+        outputColVector.noNulls = false;
+        outputIsNull[0] = true;
+      }
+    } else if (inputColVector.noNulls) {
+      if (batch.selectedInUse) {
+        for(int j = 0; j != n; j++) {
+          int i = sel[j];
+          final long result = vector[i] <OperatorSymbol> value;
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      } else {
+        for(int i = 0; i != n; i++) {
+          final long result = vector[i] <OperatorSymbol> value;
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      }
+    } else /* there are nulls */ {
+      if (batch.selectedInUse) {
+        for(int j = 0; j != n; j++) {
+          int i = sel[j];
+          outputIsNull[i] = inputIsNull[i];
+
+          // The following may override a "false" null setting if an error or overflow occurs.
+          final long result = vector[i] <OperatorSymbol> value;
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      } else {
+        System.arraycopy(inputIsNull, 0, outputIsNull, 0, n);
+        for(int i = 0; i != n; i++) {
+
+          // The following may override a "false" null setting if an error or overflow occurs.
+          final long result = vector[i] <OperatorSymbol> value;
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      }
+    }
+
+    // Currently, we defer division, etc to regular HiveDecimal so we don't do any null
+    // default value setting here.
+  }
+
+  @Override
+  public String vectorExpressionParameters() {
+    DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) inputTypeInfos[0];
+    HiveDecimalWritable writable = new HiveDecimalWritable();
+    writable.deserialize64(value, decimalTypeInfo.scale());
+    return getColumnParamString(0, colNum) + ", decimal64Val " + value +
+        ", decimalVal " + writable.toString();
+  }
+
+  @Override
+  public VectorExpressionDescriptor.Descriptor getDescriptor() {
+    return (new VectorExpressionDescriptor.Builder())
+        .setMode(
+            VectorExpressionDescriptor.Mode.PROJECTION)
+        .setNumArguments(2)
+        .setArgumentTypes(
+            VectorExpressionDescriptor.ArgumentType.DECIMAL_64,
+            VectorExpressionDescriptor.ArgumentType.DECIMAL_64)
+        .setInputExpressionTypes(
+            VectorExpressionDescriptor.InputExpressionType.COLUMN,
+            VectorExpressionDescriptor.InputExpressionType.SCALAR).build();
+  }
+}
\ No newline at end of file
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/Decimal64ScalarArithmeticDecimal64Column.txt b/ql/src/gen/vectorization/ExpressionTemplates/Decimal64ScalarArithmeticDecimal64Column.txt
new file mode 100644 (file)
index 0000000..7b1c245
--- /dev/null
@@ -0,0 +1,181 @@
+/**
+ * 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.Decimal64ColumnVector;
+import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
+import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.NullUtil;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.Decimal64Util;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
+import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
+import org.apache.hadoop.hive.serde2.typeinfo.DecimalTypeInfo;
+
+/**
+ * Generated from template Decimal64ScalarArithmeticDecimal64Column.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 long value;
+
+  public <ClassName>(long value, int colNum, int outputColumnNum) {
+    super(outputColumnNum);
+    this.colNum = colNum;
+    this.value = value;
+  }
+
+  public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum = -1;
+    value = 0;
+  }
+
+  @Override
+  public void evaluate(VectorizedRowBatch batch) {
+
+    if (childExpressions != null) {
+      super.evaluateChildren(batch);
+    }
+
+    Decimal64ColumnVector inputColVector = (Decimal64ColumnVector) batch.cols[colNum];
+    Decimal64ColumnVector outputColVector = (Decimal64ColumnVector) batch.cols[outputColumnNum];
+    int[] sel = batch.selected;
+    boolean[] inputIsNull = inputColVector.isNull;
+    boolean[] outputIsNull = outputColVector.isNull;
+    outputColVector.noNulls = inputColVector.noNulls;
+    outputColVector.isRepeating = inputColVector.isRepeating;
+    int n = batch.size;
+    long[] vector = inputColVector.vector;
+    long[] outputVector = outputColVector.vector;
+
+    // return immediately if batch is empty
+    if (n == 0) {
+      return;
+    }
+
+    final long outputDecimal64AbsMax =
+        HiveDecimalWritable.getDecimal64AbsMax(outputColVector.precision);
+
+    if (inputColVector.noNulls) {
+
+      /* Initialize output vector NULL values to false. This is necessary
+       * since the decimal operation may produce a NULL result even for
+       * a non-null input vector value, and convert the output vector
+       * to have noNulls = false;
+       */
+      NullUtil.initOutputNullsToFalse(outputColVector, inputColVector.isRepeating,
+          batch.selectedInUse, sel, n);
+    }
+
+    if (inputColVector.isRepeating) {
+      if (!inputColVector.noNulls) {
+        outputIsNull[0] = inputIsNull[0];
+      }
+
+      // The following may override a "false" null setting if an error or overflow occurs.
+      final long result = value <OperatorSymbol> vector[0];
+      outputVector[0] = result;
+      if (Math.abs(result) > outputDecimal64AbsMax) {
+        outputColVector.noNulls = false;
+        outputIsNull[0] = true;
+      }
+    } else if (inputColVector.noNulls) {
+      if (batch.selectedInUse) {
+        for(int j = 0; j != n; j++) {
+          int i = sel[j];
+          final long result = value <OperatorSymbol> vector[i];
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      } else {
+        for(int i = 0; i != n; i++) {
+          final long result = value <OperatorSymbol> vector[i];
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      }
+    } else /* there are nulls */ {
+      if (batch.selectedInUse) {
+        for(int j = 0; j != n; j++) {
+          int i = sel[j];
+          outputIsNull[i] = inputIsNull[i];
+
+          // The following may override a "false" null setting if an error or overflow occurs.
+          final long result = value <OperatorSymbol> vector[i];
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      } else {
+        System.arraycopy(inputIsNull, 0, outputIsNull, 0, n);
+        for(int i = 0; i != n; i++) {
+
+          // The following may override a "false" null setting if an error or overflow occurs.
+          final long result = value <OperatorSymbol> vector[i];
+          outputVector[i] = result;
+          if (Math.abs(result) > outputDecimal64AbsMax) {
+            outputColVector.noNulls = false;
+            outputIsNull[i] = true;
+          }
+        }
+      }
+    }
+
+    // Currently, we defer division, etc to regular HiveDecimal so we don't do any null
+    // default value setting here.
+  }
+
+  @Override
+  public String vectorExpressionParameters() {
+    DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) inputTypeInfos[1];
+    HiveDecimalWritable writable = new HiveDecimalWritable();
+    writable.deserialize64(value, decimalTypeInfo.scale());
+    return "decimal64Val " + value + ", decimalVal " + writable.toString() +
+        ", " + getColumnParamString(1, colNum);
+  }
+
+  @Override
+  public VectorExpressionDescriptor.Descriptor getDescriptor() {
+    return (new VectorExpressionDescriptor.Builder())
+        .setMode(
+            VectorExpressionDescriptor.Mode.PROJECTION)
+        .setNumArguments(2)
+        .setArgumentTypes(
+            VectorExpressionDescriptor.ArgumentType.DECIMAL_64,
+            VectorExpressionDescriptor.ArgumentType.DECIMAL_64)
+        .setInputExpressionTypes(
+            VectorExpressionDescriptor.InputExpressionType.SCALAR,
+            VectorExpressionDescriptor.InputExpressionType.COLUMN).build();
+  }
+}
\ No newline at end of file
index 0b7fefc..50c9996 100644 (file)
@@ -32,17 +32,18 @@ import java.util.Arrays;
 public class <ClassName> extends VectorExpression {
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  private int outputColumn;
+  private final int colNum;
 
-  public <ClassName>(int colNum, int outputColumn) {
-    this();
+  public <ClassName>(int colNum, int outputColumnNum) {
+    super(outputColumnNum);
     this.colNum = colNum;
-    this.outputColumn = outputColumn;
   }
-  
+
   public <ClassName>() {
     super();
+
+    // Dummy final assignments.
+    colNum = -1;
   }
 
   @Override
@@ -53,7 +54,7 @@ public class <ClassName> extends VectorExpression {
     }
 
     DecimalColumnVector inputColVector = (DecimalColumnVector) batch.cols[colNum];
-    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumn];
+    <OutputColumnVectorType> outputColVector = (<OutputColumnVectorType>) batch.cols[outputColumnNum];
     int[] sel = batch.selected;
     boolean[] inputIsNull = inputColVector.isNull;
     boolean[] outputIsNull = outputColVector.isNull;
@@ -109,18 +110,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return outputColumn;
-  }
-  
-  @Override
-  public String getOutputType() {
-    return outputType;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum;
+    return getColumnParamString(0, colNum);
   }
 
   @Override
index aabd20f..c6c46f3 100644 (file)
@@ -33,19 +33,25 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  private int colNum;
-  
-  // The comparison is of the form "column BETWEEN leftValue AND rightValue"
+  private final int colNum;
+
+  // The comparison is of the form "column BETWEEN leftValue AND rightValue".
+  // NOTE: These can be set later by FilterColumnBetweenDynamicValue.txt so they are not final.
   private <OperandType> leftValue;
   private <OperandType> rightValue;
 
-  public <ClassName>(int colNum, <OperandType> leftValue, <OperandType> rightValue) { 
+  public <ClassName>(int colNum, <OperandType> leftValue, <OperandType> rightValue) {
+    super();
     this.colNum = colNum;
     this.leftValue = leftValue;
     this.rightValue = rightValue;
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum = -1;
   }
 
   @Override
@@ -140,24 +146,6 @@ public class <ClassName> extends VectorExpression {
     }
   }
 
-  @Override
-  public int getOutputColumn() {
-    return -1;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "boolean";
-  }
-  
-  public int getColNum() {
-    return colNum;
-  }
-
-  public void setColNum(int colNum) {
-    this.colNum = colNum;
-  }
-
   public <OperandType> getLeftValue() {
     return leftValue;
   }
@@ -165,7 +153,7 @@ public class <ClassName> extends VectorExpression {
   public void setLeftValue(<OperandType> value) {
     this.leftValue = value;
   }
-  
+
   public <OperandType> getRightValue() {
     return rightValue;
   }
@@ -176,7 +164,7 @@ public class <ClassName> extends VectorExpression {
 
   @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum + ", left " + leftValue + ", right " + rightValue;
+    return getColumnParamString(0, colNum) + ", left " + leftValue + ", right " + rightValue;
   }
 
   @Override
index 9d5432f..6b5a367 100644 (file)
@@ -30,6 +30,7 @@ import java.sql.Timestamp;
 import org.apache.hadoop.hive.common.type.HiveChar;
 import org.apache.hadoop.hive.common.type.HiveDecimal;
 import org.apache.hadoop.hive.common.type.HiveVarchar;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
 
 public class <ClassName> extends Filter<TypeName>ColumnBetween {
 
@@ -37,10 +38,12 @@ public class <ClassName> extends Filter<TypeName>ColumnBetween {
 
   private static final Logger LOG = LoggerFactory.getLogger(<ClassName>.class);
 
-  protected DynamicValue leftDynamicValue;
-  protected DynamicValue rightDynamicValue;
-  protected transient boolean initialized = false;
-  protected transient boolean isLeftOrRightNull = false;
+  protected final DynamicValue leftDynamicValue;
+  protected final DynamicValue rightDynamicValue;
+
+  // Transient members initialized by transientInit method.
+  protected transient boolean initialized;
+  protected transient boolean isLeftOrRightNull;
 
   public <ClassName>(int colNum, DynamicValue leftValue, DynamicValue rightValue) {
     super(colNum, <DefaultValue>, <DefaultValue>);
@@ -49,24 +52,29 @@ public class <ClassName> extends Filter<TypeName>ColumnBetween {
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    leftDynamicValue = null;
+    rightDynamicValue = null;
   }
 
-  public DynamicValue getLeftDynamicValue() {
-    return leftDynamicValue;
+  @Override
+  public void transientInit() throws HiveException {
+    super.transientInit();
+
+    initialized = false;
+    isLeftOrRightNull = false;
   }
 
-  public void setLeftDynamicValue(DynamicValue leftValue) {
-    this.leftDynamicValue = leftValue;
+  public DynamicValue getLeftDynamicValue() {
+    return leftDynamicValue;
   }
 
   public DynamicValue getRightDynamicValue() {
     return rightDynamicValue;
   }
 
-  public void getRightDynamicValue(DynamicValue rightValue) {
-    this.rightDynamicValue = rightValue;
-  }
-
   @Override
   public void init(Configuration conf) {
     super.init(conf);
index ee80606..ab8b786 100644 (file)
@@ -33,15 +33,21 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  protected int colNum1;
-  protected int colNum2;
+  protected final int colNum1;
+  protected final int colNum2;
 
-  public <ClassName>(int colNum1, int colNum2) { 
+  public <ClassName>(int colNum1, int colNum2) {
+    super();
     this.colNum1 = colNum1;
     this.colNum2 = colNum2;
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum1 = -1;
+    colNum2 = -1;
   }
 
   @Override
@@ -156,34 +162,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public String getOutputType() {
-    return "boolean";
-  }
-
-  @Override
-  public int getOutputColumn() {
-    return -1;
-  }
-  
-  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;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum1 + ", col " + + colNum2;
+    return getColumnParamString(0, colNum1) + ", " + getColumnParamString(1, colNum2);
   }
 
   @Override
index 248a66a..eee33e7 100644 (file)
@@ -32,15 +32,20 @@ public class <ClassName> extends VectorExpression {
 
   private static final long serialVersionUID = 1L;
 
-  protected int colNum;
-  protected <OperandType2> value;
+  protected final int colNum;
+  protected final <OperandType2> value;
 
-  public <ClassName>(int colNum, <OperandType2> value) { 
+  public <ClassName>(int colNum, <OperandType2> value) {
     this.colNum = colNum;
     this.value = value;
   }
 
   public <ClassName>() {
+    super();
+
+    // Dummy final assignments.
+    colNum = -1;
+    value = 0;
   }
 
   @Override
@@ -132,34 +137,8 @@ public class <ClassName> extends VectorExpression {
   }
 
   @Override
-  public int getOutputColumn() {
-    return -1;
-  }
-
-  @Override
-  public String getOutputType() {
-    return "boolean";
-  }
-  
-  public int getColNum() {
-    return colNum;
-  }
-
-  public void setColNum(int colNum) {
-    this.colNum = colNum;
-  }
-
-  public <OperandType2> getValue() {
-    return value;
-  }
-
-  public void setValue(<OperandType2> value) {
-    this.value = value;
-  }
-
-  @Override
   public String vectorExpressionParameters() {
-    return "col " + colNum + ", val " + value;
+    return getColumnParamString(0, colNum) + ", val " + value;
   }
 
   @Override
diff --git a/ql/src/gen/vectorization/ExpressionTemplates/FilterDecimal64ColumnCompareDecimal64Column.txt b/ql/src/gen/vectorization/ExpressionTemplates/FilterDecimal64ColumnCompareDecimal64Column.txt
new file mode 100644 (f