HIVE-14671 : merge master into hive-14535 (Sergey Shelukhin) Conflicts: ql/src/java/org/apache/hadoop/hive/ql/exec/MoveTask.java ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java ql/src/java/org/apache/hadoop/hive/ql/plan/FileSinkDesc.java
Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/bd78d660 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/bd78d660 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/bd78d660 Branch: refs/heads/hive-14535 Commit: bd78d6605c6c57f723045b47bab06fccc5053047 Parents: b9e8157 5353161 Author: Sergey Shelukhin <ser...@apache.org> Authored: Thu Oct 13 17:12:24 2016 -0700 Committer: Sergey Shelukhin <ser...@apache.org> Committed: Thu Oct 13 17:12:24 2016 -0700 ---------------------------------------------------------------------- .gitignore | 1 + .../org/apache/hadoop/hive/conf/HiveConf.java | 12 +- .../org/apache/hive/common/util/DateUtils.java | 20 + data/files/identity_udf.jar | Bin 710 -> 0 bytes itests/hive-blobstore/README | 25 + itests/hive-blobstore/pom.xml | 355 + .../hadoop/hive/cli/TestBlobstoreCliDriver.java | 64 + .../cli/TestBlobstoreNegativeCliDriver.java | 64 + .../clientnegative/select_dropped_table.q | 4 + .../test/queries/clientpositive/insert_into.q | 4 + .../test/resources/blobstore-conf.xml.template | 22 + .../src/test/resources/hive-site.xml | 271 + .../test/resources/testconfiguration.properties | 2 + .../src/test/resources/tez-site.xml | 6 + .../clientnegative/select_dropped_table.q.out | 21 + .../results/clientpositive/insert_into.q.out | 35 + .../minikdc/JdbcWithMiniKdcSQLAuthTest.java | 2 + .../org/apache/hive/jdbc/miniHS2/MiniHS2.java | 32 +- .../org/apache/hive/jdbc/TestJdbcDriver2.java | 171 +- .../apache/hive/jdbc/TestJdbcWithMiniHS2.java | 1005 +- .../apache/hive/jdbc/TestJdbcWithMiniMr.java | 344 - itests/pom.xml | 1 + .../test/resources/testconfiguration.properties | 80 +- .../control/AbstractCoreBlobstoreCliDriver.java | 167 + .../hadoop/hive/cli/control/CliConfigs.java | 40 + .../cli/control/CoreBlobstoreCliDriver.java | 29 + .../control/CoreBlobstoreNegativeCliDriver.java | 29 + .../org/apache/hadoop/hive/ql/QTestUtil.java | 18 +- .../ColumnArithmeticColumn.txt | 7 +- .../ColumnArithmeticColumnDecimal.txt | 5 + .../ColumnArithmeticColumnWithConvert.txt | 173 - .../ColumnArithmeticScalar.txt | 5 + .../ColumnArithmeticScalarDecimal.txt | 5 + .../ColumnArithmeticScalarWithConvert.txt | 150 - .../ExpressionTemplates/ColumnCompareColumn.txt | 5 + .../ExpressionTemplates/ColumnCompareScalar.txt | 5 + .../ExpressionTemplates/ColumnDivideColumn.txt | 5 + .../ColumnDivideColumnDecimal.txt | 5 + .../ExpressionTemplates/ColumnDivideScalar.txt | 5 + .../ColumnDivideScalarDecimal.txt | 5 + .../ExpressionTemplates/ColumnUnaryFunc.txt | 5 + .../ExpressionTemplates/ColumnUnaryMinus.txt | 5 + ...eColumnArithmeticIntervalYearMonthColumn.txt | 5 + ...eColumnArithmeticIntervalYearMonthScalar.txt | 5 + .../DateColumnArithmeticTimestampColumn.txt | 5 + .../DateColumnArithmeticTimestampScalar.txt | 5 + ...eScalarArithmeticIntervalYearMonthColumn.txt | 5 + .../DateScalarArithmeticTimestampColumn.txt | 5 + .../DecimalColumnUnaryFunc.txt | 5 + .../ExpressionTemplates/FilterColumnBetween.txt | 7 +- .../FilterColumnCompareColumn.txt | 9 +- .../FilterColumnCompareScalar.txt | 9 +- .../FilterDecimalColumnBetween.txt | 5 + .../FilterDecimalColumnCompareDecimalColumn.txt | 5 + .../FilterDecimalColumnCompareDecimalScalar.txt | 5 + .../FilterDecimalScalarCompareDecimalColumn.txt | 5 + ...erLongDoubleColumnCompareTimestampColumn.txt | 5 + ...erLongDoubleScalarCompareTimestampColumn.txt | 5 + .../FilterScalarCompareColumn.txt | 9 +- .../FilterStringColumnBetween.txt | 9 +- ...tringGroupColumnCompareStringGroupColumn.txt | 5 + ...gGroupColumnCompareStringGroupScalarBase.txt | 7 + ...gGroupScalarCompareStringGroupColumnBase.txt | 8 + .../FilterTimestampColumnBetween.txt | 5 + ...erTimestampColumnCompareLongDoubleColumn.txt | 5 + ...erTimestampColumnCompareLongDoubleScalar.txt | 5 + ...terTimestampColumnCompareTimestampColumn.txt | 5 + ...terTimestampColumnCompareTimestampScalar.txt | 5 + ...erTimestampScalarCompareLongDoubleColumn.txt | 5 + ...terTimestampScalarCompareTimestampColumn.txt | 5 + .../FilterTruncStringColumnBetween.txt | 10 +- .../ExpressionTemplates/IfExprColumnScalar.txt | 5 + .../ExpressionTemplates/IfExprScalarColumn.txt | 5 + .../ExpressionTemplates/IfExprScalarScalar.txt | 5 + ...ervalYearMonthColumnArithmeticDateColumn.txt | 5 + ...ervalYearMonthColumnArithmeticDateScalar.txt | 5 + ...YearMonthColumnArithmeticTimestampColumn.txt | 5 + ...YearMonthColumnArithmeticTimestampScalar.txt | 5 + ...ervalYearMonthScalarArithmeticDateColumn.txt | 5 + ...YearMonthScalarArithmeticTimestampColumn.txt | 5 + .../LongDoubleColumnCompareTimestampColumn.txt | 5 + .../LongDoubleColumnCompareTimestampScalar.txt | 4 + .../LongDoubleScalarCompareTimestampColumn.txt | 5 + .../ScalarArithmeticColumn.txt | 5 + .../ScalarArithmeticColumnDecimal.txt | 5 + .../ScalarArithmeticColumnWithConvert.txt | 163 - .../ExpressionTemplates/ScalarCompareColumn.txt | 5 + .../ExpressionTemplates/ScalarDivideColumn.txt | 5 + .../ScalarDivideColumnDecimal.txt | 5 + ...tringGroupColumnCompareStringGroupColumn.txt | 5 + ...gGroupColumnCompareStringGroupScalarBase.txt | 6 + ...tringGroupColumnCompareTruncStringScalar.txt | 7 + ...gGroupScalarCompareStringGroupColumnBase.txt | 7 + .../TimestampColumnArithmeticDateColumn.txt | 5 + .../TimestampColumnArithmeticDateScalar.txt | 5 + ...pColumnArithmeticIntervalYearMonthColumn.txt | 5 + ...pColumnArithmeticIntervalYearMonthScalar.txt | 5 + ...TimestampColumnArithmeticTimestampColumn.txt | 5 + ...TimestampColumnArithmeticTimestampScalar.txt | 5 + .../TimestampColumnCompareLongDoubleColumn.txt | 5 + .../TimestampColumnCompareLongDoubleScalar.txt | 5 + .../TimestampColumnCompareTimestampColumn.txt | 5 + .../TimestampColumnCompareTimestampScalar.txt | 5 + .../TimestampScalarArithmeticDateColumn.txt | 5 + ...pScalarArithmeticIntervalYearMonthColumn.txt | 5 + ...TimestampScalarArithmeticTimestampColumn.txt | 5 + .../TimestampScalarCompareTimestampColumn.txt | 5 + ...runcStringScalarCompareStringGroupColumn.txt | 2 + .../UDAFTemplates/VectorUDAFAvg.txt | 6 + .../UDAFTemplates/VectorUDAFMinMax.txt | 6 + .../UDAFTemplates/VectorUDAFMinMaxDecimal.txt | 6 + .../VectorUDAFMinMaxIntervalDayTime.txt | 6 + .../UDAFTemplates/VectorUDAFMinMaxString.txt | 6 + .../UDAFTemplates/VectorUDAFMinMaxTimestamp.txt | 6 + .../UDAFTemplates/VectorUDAFSum.txt | 6 + .../UDAFTemplates/VectorUDAFVar.txt | 6 + .../UDAFTemplates/VectorUDAFVarDecimal.txt | 6 + .../apache/hadoop/hive/ql/exec/ExplainTask.java | 252 +- .../hadoop/hive/ql/exec/MapJoinOperator.java | 2 +- .../apache/hadoop/hive/ql/exec/MoveTask.java | 6 +- .../hadoop/hive/ql/exec/OperatorFactory.java | 5 + .../hadoop/hive/ql/exec/SelectOperator.java | 1 - .../hadoop/hive/ql/exec/StatsNoJobTask.java | 8 +- .../apache/hadoop/hive/ql/exec/Utilities.java | 7 + .../hive/ql/exec/persistence/MapJoinKey.java | 9 +- .../hive/ql/exec/spark/HashTableLoader.java | 2 +- .../ql/exec/vector/VectorColumnMapping.java | 12 +- .../ql/exec/vector/VectorColumnOrderedMap.java | 33 +- .../exec/vector/VectorColumnOutputMapping.java | 7 +- .../exec/vector/VectorColumnSourceMapping.java | 7 +- .../hive/ql/exec/vector/VectorCopyRow.java | 3 +- .../ql/exec/vector/VectorFilterOperator.java | 4 +- .../ql/exec/vector/VectorGroupByOperator.java | 21 +- .../ql/exec/vector/VectorSelectOperator.java | 33 +- .../ql/exec/vector/VectorizationContext.java | 38 +- .../exec/vector/VectorizationContextRegion.java | 4 +- .../ql/exec/vector/VectorizedRowBatchCtx.java | 3 + ...AbstractFilterStringColLikeStringScalar.java | 5 + .../CastBooleanToCharViaLongToChar.java | 5 + .../CastBooleanToVarCharViaLongToVarChar.java | 5 + .../exec/vector/expressions/CastDateToChar.java | 4 + .../vector/expressions/CastDateToVarChar.java | 5 + .../vector/expressions/CastDecimalToChar.java | 5 + .../expressions/CastDecimalToDecimal.java | 5 + .../expressions/CastDecimalToVarChar.java | 5 + .../expressions/CastDoubleToTimestamp.java | 5 + .../exec/vector/expressions/CastLongToChar.java | 5 + .../exec/vector/expressions/CastLongToDate.java | 5 + .../vector/expressions/CastLongToTimestamp.java | 5 + .../vector/expressions/CastLongToVarChar.java | 5 + .../CastMillisecondsLongToTimestamp.java | 5 + .../expressions/CastStringGroupToChar.java | 4 + .../expressions/CastStringGroupToVarChar.java | 5 + .../vector/expressions/CastStringToDate.java | 5 + .../vector/expressions/CastStringToDecimal.java | 5 + .../CastStringToIntervalDayTime.java | 5 + .../CastStringToIntervalYearMonth.java | 5 + .../expressions/CastTimestampToBoolean.java | 7 +- .../expressions/CastTimestampToDouble.java | 5 + .../vector/expressions/CastTimestampToLong.java | 7 +- .../ql/exec/vector/expressions/ColAndCol.java | 5 + .../ql/exec/vector/expressions/ColOrCol.java | 5 + .../expressions/ConstantVectorExpression.java | 33 + .../expressions/DateColSubtractDateColumn.java | 4 + .../expressions/DateColSubtractDateScalar.java | 5 + .../DateScalarSubtractDateColumn.java | 5 + .../vector/expressions/DecimalColumnInList.java | 7 + .../expressions/DecimalToStringUnaryUDF.java | 5 + .../vector/expressions/DoubleColumnInList.java | 7 + .../vector/expressions/FilterColAndScalar.java | 5 + .../vector/expressions/FilterColOrScalar.java | 5 + .../expressions/FilterDecimalColumnInList.java | 7 + .../expressions/FilterDoubleColumnInList.java | 6 + .../vector/expressions/FilterExprAndExpr.java | 8 + .../vector/expressions/FilterExprOrExpr.java | 6 + .../expressions/FilterLongColumnInList.java | 7 + .../expressions/FilterScalarAndColumn.java | 5 + .../expressions/FilterScalarOrColumn.java | 5 + .../expressions/FilterStringColumnInList.java | 7 + .../expressions/FilterStructColumnInList.java | 9 + .../FilterTimestampColumnInList.java | 7 + .../vector/expressions/FuncDecimalToDouble.java | 5 + .../vector/expressions/FuncDecimalToLong.java | 5 + .../expressions/FuncDecimalToTimestamp.java | 5 + .../vector/expressions/FuncDoubleToDecimal.java | 4 + .../vector/expressions/FuncLongToDecimal.java | 4 + .../vector/expressions/FuncLongToString.java | 4 + .../FuncRoundWithNumDigitsDecimalToDecimal.java | 4 + .../expressions/FuncTimestampToDecimal.java | 5 + .../vector/expressions/FuncTimestampToLong.java | 5 + .../vector/expressions/IdentityExpression.java | 5 + .../IfExprDoubleColumnDoubleColumn.java | 5 + .../IfExprIntervalDayTimeColumnColumn.java | 5 + .../IfExprIntervalDayTimeColumnScalar.java | 5 + .../IfExprIntervalDayTimeScalarColumn.java | 5 + .../IfExprIntervalDayTimeScalarScalar.java | 5 + .../expressions/IfExprLongColumnLongColumn.java | 5 + ...fExprStringGroupColumnStringGroupColumn.java | 5 + .../IfExprStringGroupColumnStringScalar.java | 7 + .../IfExprStringScalarStringGroupColumn.java | 7 + .../IfExprStringScalarStringScalar.java | 7 + .../IfExprTimestampColumnColumnBase.java | 5 + .../IfExprTimestampColumnScalarBase.java | 6 + .../IfExprTimestampScalarColumnBase.java | 6 + .../IfExprTimestampScalarScalarBase.java | 6 + .../ql/exec/vector/expressions/IsNotNull.java | 5 + .../hive/ql/exec/vector/expressions/IsNull.java | 5 + .../expressions/LongColDivideLongColumn.java | 5 + .../expressions/LongColDivideLongScalar.java | 5 + .../expressions/LongColEqualLongColumn.java | 5 + .../expressions/LongColEqualLongScalar.java | 4 + .../LongColGreaterEqualLongColumn.java | 5 + .../LongColGreaterEqualLongScalar.java | 5 + .../expressions/LongColGreaterLongColumn.java | 5 + .../expressions/LongColGreaterLongScalar.java | 5 + .../expressions/LongColLessEqualLongColumn.java | 5 + .../expressions/LongColLessEqualLongScalar.java | 5 + .../expressions/LongColLessLongColumn.java | 5 + .../expressions/LongColLessLongScalar.java | 5 + .../expressions/LongColNotEqualLongColumn.java | 5 + .../expressions/LongColNotEqualLongScalar.java | 5 + .../vector/expressions/LongColumnInList.java | 6 + .../expressions/LongScalarDivideLongColumn.java | 5 + .../expressions/LongScalarEqualLongColumn.java | 4 + .../LongScalarGreaterEqualLongColumn.java | 5 + .../LongScalarGreaterLongColumn.java | 5 + .../LongScalarLessEqualLongColumn.java | 4 + .../expressions/LongScalarLessLongColumn.java | 5 + .../LongScalarNotEqualLongColumn.java | 5 + .../expressions/LongToStringUnaryUDF.java | 5 + .../expressions/MathFuncDoubleToDouble.java | 7 +- .../expressions/MathFuncLongToDouble.java | 5 + .../vector/expressions/MathFuncLongToLong.java | 7 +- .../hive/ql/exec/vector/expressions/NotCol.java | 5 + .../expressions/PosModDoubleToDouble.java | 5 + .../vector/expressions/PosModLongToLong.java | 5 + .../RoundWithNumDigitsDoubleToDouble.java | 5 + .../vector/expressions/SelectColumnIsFalse.java | 4 + .../expressions/SelectColumnIsNotNull.java | 5 + .../vector/expressions/SelectColumnIsNull.java | 5 + .../vector/expressions/SelectColumnIsTrue.java | 5 + .../SelectStringColLikeStringScalar.java | 10 +- .../vector/expressions/StringColumnInList.java | 5 + .../StringGroupColConcatStringScalar.java | 7 + .../expressions/StringGroupConcatColCol.java | 5 + .../exec/vector/expressions/StringLength.java | 4 + .../StringScalarConcatStringGroupCol.java | 7 + .../expressions/StringSubstrColStart.java | 5 + .../expressions/StringSubstrColStartLen.java | 5 + .../exec/vector/expressions/StringUnaryUDF.java | 5 + .../expressions/StringUnaryUDFDirect.java | 4 + .../vector/expressions/StructColumnInList.java | 8 + .../expressions/TimestampColumnInList.java | 6 + .../expressions/TimestampToStringUnaryUDF.java | 4 + .../exec/vector/expressions/VectorCoalesce.java | 5 + .../ql/exec/vector/expressions/VectorElt.java | 7 + .../vector/expressions/VectorExpression.java | 44 +- .../expressions/VectorUDFDateAddColCol.java | 5 + .../expressions/VectorUDFDateAddColScalar.java | 5 + .../expressions/VectorUDFDateAddScalarCol.java | 5 + .../expressions/VectorUDFDateDiffColCol.java | 5 + .../expressions/VectorUDFDateDiffColScalar.java | 6 + .../expressions/VectorUDFDateDiffScalarCol.java | 5 + .../VectorUDFTimestampFieldDate.java | 10 + .../VectorUDFTimestampFieldString.java | 9 + .../VectorUDFTimestampFieldTimestamp.java | 9 + .../aggregates/VectorAggregateExpression.java | 19 + .../aggregates/VectorUDAFAvgDecimal.java | 6 + .../aggregates/VectorUDAFAvgTimestamp.java | 6 + .../expressions/aggregates/VectorUDAFCount.java | 6 + .../aggregates/VectorUDAFCountMerge.java | 6 + .../aggregates/VectorUDAFCountStar.java | 7 + .../aggregates/VectorUDAFStdPopTimestamp.java | 6 + .../aggregates/VectorUDAFStdSampTimestamp.java | 6 + .../aggregates/VectorUDAFSumDecimal.java | 6 + .../aggregates/VectorUDAFVarPopTimestamp.java | 6 + .../aggregates/VectorUDAFVarSampTimestamp.java | 6 + .../mapjoin/VectorMapJoinCommonOperator.java | 363 +- .../VectorMapJoinInnerBigOnlyLongOperator.java | 11 +- ...ctorMapJoinInnerBigOnlyMultiKeyOperator.java | 15 +- ...VectorMapJoinInnerBigOnlyStringOperator.java | 11 +- .../mapjoin/VectorMapJoinInnerLongOperator.java | 11 +- .../VectorMapJoinInnerMultiKeyOperator.java | 15 +- .../VectorMapJoinInnerStringOperator.java | 11 +- .../VectorMapJoinLeftSemiLongOperator.java | 11 +- .../VectorMapJoinLeftSemiMultiKeyOperator.java | 15 +- .../VectorMapJoinLeftSemiStringOperator.java | 11 +- .../mapjoin/VectorMapJoinOuterLongOperator.java | 11 +- .../VectorMapJoinOuterMultiKeyOperator.java | 15 +- .../VectorMapJoinOuterStringOperator.java | 11 +- .../fast/VectorMapJoinFastTableContainer.java | 2 +- .../VectorMapJoinOptimizedCreateHashTable.java | 2 +- .../VectorReduceSinkCommonOperator.java | 2 +- .../ql/exec/vector/udf/VectorUDFAdaptor.java | 5 + .../apache/hadoop/hive/ql/metadata/Hive.java | 4 + .../hive/ql/optimizer/physical/Vectorizer.java | 1458 +- .../ql/optimizer/physical/VectorizerReason.java | 123 + .../hive/ql/parse/ExplainConfiguration.java | 39 + .../hive/ql/parse/ExplainSemanticAnalyzer.java | 45 +- .../hadoop/hive/ql/parse/FromClauseParser.g | 3 - .../org/apache/hadoop/hive/ql/parse/HiveLexer.g | 5 + .../apache/hadoop/hive/ql/parse/HiveParser.g | 38 +- .../hadoop/hive/ql/parse/IdentifiersParser.g | 54 +- .../hadoop/hive/ql/parse/SelectClauseParser.g | 3 - .../hive/ql/plan/AbstractOperatorDesc.java | 12 + .../hadoop/hive/ql/plan/AbstractVectorDesc.java | 14 + .../hadoop/hive/ql/plan/AppMasterEventDesc.java | 24 + .../apache/hadoop/hive/ql/plan/BaseWork.java | 197 +- .../org/apache/hadoop/hive/ql/plan/Explain.java | 29 + .../apache/hadoop/hive/ql/plan/ExplainWork.java | 13 + .../apache/hadoop/hive/ql/plan/FetchWork.java | 45 +- .../hadoop/hive/ql/plan/FileSinkDesc.java | 18 +- .../apache/hadoop/hive/ql/plan/FilterDesc.java | 28 + .../apache/hadoop/hive/ql/plan/GroupByDesc.java | 84 +- .../hadoop/hive/ql/plan/HashTableSinkDesc.java | 1 + .../apache/hadoop/hive/ql/plan/LimitDesc.java | 18 + .../apache/hadoop/hive/ql/plan/MapJoinDesc.java | 218 +- .../org/apache/hadoop/hive/ql/plan/MapWork.java | 99 +- .../hadoop/hive/ql/plan/MapredLocalWork.java | 4 +- .../apache/hadoop/hive/ql/plan/MapredWork.java | 11 +- .../ql/plan/OperatorExplainVectorization.java | 85 + .../hadoop/hive/ql/plan/ReduceSinkDesc.java | 119 +- .../apache/hadoop/hive/ql/plan/ReduceWork.java | 92 +- .../apache/hadoop/hive/ql/plan/SelectDesc.java | 35 + .../hive/ql/plan/SparkHashTableSinkDesc.java | 25 + .../apache/hadoop/hive/ql/plan/SparkWork.java | 6 +- .../hadoop/hive/ql/plan/TableScanDesc.java | 26 + .../org/apache/hadoop/hive/ql/plan/TezWork.java | 11 +- .../hive/ql/plan/VectorAppMasterEventDesc.java | 35 + .../apache/hadoop/hive/ql/plan/VectorDesc.java | 5 + .../hadoop/hive/ql/plan/VectorFileSinkDesc.java | 35 + .../hadoop/hive/ql/plan/VectorFilterDesc.java | 48 + .../hadoop/hive/ql/plan/VectorGroupByDesc.java | 31 + .../hadoop/hive/ql/plan/VectorLimitDesc.java | 35 + .../hadoop/hive/ql/plan/VectorMapJoinDesc.java | 110 + .../hadoop/hive/ql/plan/VectorMapJoinInfo.java | 169 + .../hive/ql/plan/VectorReduceSinkDesc.java | 68 + .../hadoop/hive/ql/plan/VectorSMBJoinDesc.java | 35 + .../hadoop/hive/ql/plan/VectorSelectDesc.java | 56 + .../ql/plan/VectorSparkHashTableSinkDesc.java | 35 + .../hive/ql/plan/VectorTableScanDesc.java | 45 + .../hive/ql/plan/VectorizationCondition.java | 76 + .../exec/vector/TestVectorFilterOperator.java | 15 +- .../exec/vector/TestVectorGroupByOperator.java | 90 +- .../exec/vector/TestVectorSelectOperator.java | 16 + .../ql/optimizer/physical/TestVectorizer.java | 16 +- .../TestSQL11ReservedKeyWordsNegative.java | 2158 +- .../TestSQL11ReservedKeyWordsPositive.java | 822 - .../dynpart_sort_optimization_acid.q | 6 + .../queries/clientpositive/explainanalyze_3.q | 8 +- .../queries/clientpositive/explainanalyze_5.q | 8 +- .../clientpositive/insert_into_with_schema.q | 10 +- ql/src/test/queries/clientpositive/keyword_2.q | 7 +- .../queries/clientpositive/ppd_field_garbage.q | 6 +- .../clientpositive/schema_evol_orc_vec_part.q | 20 +- .../schema_evol_orc_vec_part_all_complex.q | 8 +- .../schema_evol_orc_vec_part_all_primitive.q | 12 +- .../clientpositive/schema_evol_orc_vec_table.q | 12 +- .../clientpositive/schema_evol_text_vec_part.q | 20 +- .../schema_evol_text_vec_part_all_complex.q | 8 +- .../schema_evol_text_vec_part_all_primitive.q | 12 +- .../clientpositive/schema_evol_text_vec_table.q | 12 +- .../schema_evol_text_vecrow_part.q | 20 +- .../schema_evol_text_vecrow_part_all_complex.q | 8 +- ...schema_evol_text_vecrow_part_all_primitive.q | 12 +- .../schema_evol_text_vecrow_table.q | 12 +- .../queries/clientpositive/udaf_collect_set_2.q | 34 +- .../clientpositive/vector_adaptor_usage_mode.q | 24 +- .../queries/clientpositive/vector_aggregate_9.q | 3 +- .../vector_aggregate_without_gby.q | 4 +- .../clientpositive/vector_auto_smb_mapjoin_14.q | 30 +- .../clientpositive/vector_between_columns.q | 4 +- .../queries/clientpositive/vector_between_in.q | 25 +- .../clientpositive/vector_binary_join_groupby.q | 7 +- .../test/queries/clientpositive/vector_bround.q | 4 +- .../test/queries/clientpositive/vector_bucket.q | 3 +- .../clientpositive/vector_cast_constant.q | 4 +- .../test/queries/clientpositive/vector_char_2.q | 6 +- .../test/queries/clientpositive/vector_char_4.q | 3 +- .../queries/clientpositive/vector_char_cast.q | 2 + .../clientpositive/vector_char_mapjoin1.q | 6 +- .../queries/clientpositive/vector_char_simple.q | 8 +- .../queries/clientpositive/vector_coalesce.q | 13 +- .../queries/clientpositive/vector_coalesce_2.q | 8 +- .../queries/clientpositive/vector_complex_all.q | 6 +- .../clientpositive/vector_complex_join.q | 4 +- .../test/queries/clientpositive/vector_count.q | 8 +- .../clientpositive/vector_count_distinct.q | 3 +- .../queries/clientpositive/vector_data_types.q | 5 +- .../test/queries/clientpositive/vector_date_1.q | 3 +- .../queries/clientpositive/vector_decimal_1.q | 2 +- .../clientpositive/vector_decimal_10_0.q | 2 +- .../queries/clientpositive/vector_decimal_2.q | 2 +- .../queries/clientpositive/vector_decimal_3.q | 2 +- .../queries/clientpositive/vector_decimal_4.q | 2 +- .../queries/clientpositive/vector_decimal_5.q | 2 +- .../queries/clientpositive/vector_decimal_6.q | 2 +- .../clientpositive/vector_decimal_aggregate.q | 6 +- .../clientpositive/vector_decimal_cast.q | 3 +- .../clientpositive/vector_decimal_expressions.q | 3 +- .../clientpositive/vector_decimal_mapjoin.q | 3 +- .../clientpositive/vector_decimal_math_funcs.q | 4 +- .../clientpositive/vector_decimal_precision.q | 4 +- .../clientpositive/vector_decimal_round.q | 14 +- .../clientpositive/vector_decimal_round_2.q | 10 +- .../clientpositive/vector_decimal_trailing.q | 2 +- .../clientpositive/vector_decimal_udf2.q | 6 +- .../queries/clientpositive/vector_distinct_2.q | 3 +- ql/src/test/queries/clientpositive/vector_elt.q | 5 +- .../queries/clientpositive/vector_empty_where.q | 8 +- .../queries/clientpositive/vector_groupby4.q | 2 +- .../queries/clientpositive/vector_groupby6.q | 2 +- .../queries/clientpositive/vector_groupby_3.q | 3 +- .../clientpositive/vector_groupby_mapjoin.q | 4 +- .../clientpositive/vector_groupby_reduce.q | 9 +- .../clientpositive/vector_grouping_sets.q | 4 +- .../queries/clientpositive/vector_if_expr.q | 4 +- .../clientpositive/vector_include_no_sel.q | 3 +- .../queries/clientpositive/vector_inner_join.q | 19 +- .../queries/clientpositive/vector_interval_1.q | 19 +- .../queries/clientpositive/vector_interval_2.q | 22 +- .../clientpositive/vector_interval_arithmetic.q | 16 +- .../clientpositive/vector_interval_mapjoin.q | 3 +- .../test/queries/clientpositive/vector_join.q | 1 + .../test/queries/clientpositive/vector_join30.q | 16 +- .../clientpositive/vector_join_part_col_char.q | 3 +- .../clientpositive/vector_left_outer_join.q | 4 +- .../clientpositive/vector_left_outer_join2.q | 12 +- .../clientpositive/vector_leftsemi_mapjoin.q | 361 +- .../clientpositive/vector_mapjoin_reduce.q | 5 +- .../vector_mr_diff_schema_alias.q | 3 +- .../clientpositive/vector_multi_insert.q | 4 +- .../vector_non_constant_in_expr.q | 2 +- .../vector_non_string_partition.q | 5 +- .../clientpositive/vector_null_projection.q | 4 +- .../clientpositive/vector_nullsafe_join.q | 21 +- .../vector_number_compare_projection.q | 4 +- ql/src/test/queries/clientpositive/vector_nvl.q | 9 +- .../queries/clientpositive/vector_orderby_5.q | 3 +- .../queries/clientpositive/vector_outer_join0.q | 5 +- .../queries/clientpositive/vector_outer_join1.q | 7 +- .../queries/clientpositive/vector_outer_join2.q | 3 +- .../queries/clientpositive/vector_outer_join3.q | 7 +- .../queries/clientpositive/vector_outer_join4.q | 7 +- .../queries/clientpositive/vector_outer_join5.q | 21 +- .../queries/clientpositive/vector_outer_join6.q | 5 +- .../vector_partition_diff_num_cols.q | 12 +- .../vector_partitioned_date_time.q | 18 +- .../vector_partitioned_date_time_win.q | 16 +- .../queries/clientpositive/vector_reduce1.q | 3 +- .../queries/clientpositive/vector_reduce2.q | 3 +- .../queries/clientpositive/vector_reduce3.q | 3 +- .../vector_reduce_groupby_decimal.q | 4 +- .../clientpositive/vector_string_concat.q | 5 +- .../clientpositive/vector_string_decimal.q | 2 +- .../queries/clientpositive/vector_struct_in.q | 19 +- .../clientpositive/vector_tablesample_rows.q | 8 +- .../test/queries/clientpositive/vector_udf2.q | 2 +- .../test/queries/clientpositive/vector_udf3.q | 3 +- .../queries/clientpositive/vector_varchar_4.q | 3 +- .../clientpositive/vector_varchar_mapjoin1.q | 6 +- .../clientpositive/vector_varchar_simple.q | 8 +- .../clientpositive/vector_when_case_null.q | 2 +- .../queries/clientpositive/vectorization_0.q | 21 +- .../queries/clientpositive/vectorization_1.q | 1 + .../queries/clientpositive/vectorization_10.q | 1 + .../queries/clientpositive/vectorization_11.q | 1 + .../queries/clientpositive/vectorization_12.q | 1 + .../queries/clientpositive/vectorization_13.q | 6 +- .../queries/clientpositive/vectorization_14.q | 3 +- .../queries/clientpositive/vectorization_15.q | 3 +- .../queries/clientpositive/vectorization_16.q | 3 +- .../queries/clientpositive/vectorization_17.q | 3 +- .../queries/clientpositive/vectorization_2.q | 1 + .../queries/clientpositive/vectorization_3.q | 1 + .../queries/clientpositive/vectorization_4.q | 1 + .../queries/clientpositive/vectorization_5.q | 1 + .../queries/clientpositive/vectorization_6.q | 1 + .../queries/clientpositive/vectorization_7.q | 6 +- .../queries/clientpositive/vectorization_8.q | 6 +- .../queries/clientpositive/vectorization_9.q | 3 +- .../clientpositive/vectorization_decimal_date.q | 4 +- .../queries/clientpositive/vectorization_div0.q | 7 +- .../clientpositive/vectorization_limit.q | 16 +- .../clientpositive/vectorization_nested_udf.q | 2 + .../queries/clientpositive/vectorization_not.q | 2 + .../clientpositive/vectorization_offset_limit.q | 5 +- .../queries/clientpositive/vectorization_part.q | 2 + .../clientpositive/vectorization_part_project.q | 4 +- .../clientpositive/vectorization_part_varchar.q | 2 + .../clientpositive/vectorization_pushdown.q | 4 +- .../vectorization_short_regress.q | 54 +- .../clientpositive/vectorized_bucketmapjoin1.q | 8 +- .../queries/clientpositive/vectorized_case.q | 4 +- .../queries/clientpositive/vectorized_casts.q | 2 +- .../queries/clientpositive/vectorized_context.q | 4 +- .../clientpositive/vectorized_date_funcs.q | 11 +- .../clientpositive/vectorized_distinct_gby.q | 5 +- .../vectorized_dynamic_partition_pruning.q | 79 +- .../queries/clientpositive/vectorized_mapjoin.q | 3 +- .../clientpositive/vectorized_mapjoin2.q | 2 +- .../clientpositive/vectorized_math_funcs.q | 3 +- .../clientpositive/vectorized_nested_mapjoin.q | 3 +- .../queries/clientpositive/vectorized_parquet.q | 4 +- .../clientpositive/vectorized_parquet_types.q | 6 +- .../queries/clientpositive/vectorized_ptf.q | 47 +- .../clientpositive/vectorized_shufflejoin.q | 3 +- .../clientpositive/vectorized_string_funcs.q | 3 +- .../clientpositive/vectorized_timestamp.q | 8 +- .../clientpositive/vectorized_timestamp_funcs.q | 15 +- .../vectorized_timestamp_ints_casts.q | 5 +- .../authorization_cannot_create_all_role.q.out | 2 +- .../authorization_cannot_create_none_role.q.out | 2 +- .../clientnegative/cte_with_in_subquery.q.out | 2 +- .../clientnegative/lateral_view_join.q.out | 2 +- .../results/clientnegative/subq_insert.q.out | 2 +- .../test/results/clientpositive/keyword_2.q.out | 12 +- .../clientpositive/llap/autoColumnStats_1.q.out | 1361 ++ .../clientpositive/llap/autoColumnStats_2.q.out | 1480 ++ .../clientpositive/llap/bucket_groupby.q.out | 1666 ++ .../llap/bucketsortoptimize_insert_2.q.out | 1256 ++ .../clientpositive/llap/cbo_rp_gby.q.out | 124 + .../clientpositive/llap/cbo_rp_join.q.out | 15028 +++++++++++++ .../clientpositive/llap/cbo_rp_lineage2.q.out | 677 + .../clientpositive/llap/cbo_rp_semijoin.q.out | 440 + .../llap/cbo_rp_subq_not_in.q.out | 365 + .../llap/cbo_rp_unionDistinct_2.q.out | 551 + .../llap/cbo_rp_windowing_2.q.out | 2338 ++ .../llap/correlationoptimizer2.q.out | 2130 ++ .../llap/correlationoptimizer4.q.out | 1922 ++ .../llap/correlationoptimizer6.q.out | 3994 ++++ .../llap/dynpart_sort_optimization_acid.q.out | 1709 ++ .../results/clientpositive/llap/escape1.q.out | Bin 0 -> 54831 bytes .../results/clientpositive/llap/escape2.q.out | Bin 0 -> 78516 bytes .../clientpositive/llap/global_limit.q.out | 1677 ++ .../clientpositive/llap/groupby_sort_1_23.q.out | 4310 ++++ .../llap/groupby_sort_skew_1_23.q.out | 4482 ++++ .../llap/insert_into_with_schema.q.out | 364 + .../results/clientpositive/llap/join43.q.out | 648 + .../clientpositive/llap/join_filters.q.out | 1484 ++ .../clientpositive/llap/join_nulls.q.out | 652 + .../llap/limit_join_transpose.q.out | 1825 ++ .../results/clientpositive/llap/lineage2.q.out | 707 + .../results/clientpositive/llap/lineage3.q.out | 388 + .../clientpositive/llap/llap_partitioned.q.out | 2019 ++ .../clientpositive/llap/load_dyn_part5.q.out | 1042 + .../clientpositive/llap/multiMapJoin1.q.out | 2145 ++ .../clientpositive/llap/multiMapJoin2.q.out | 3187 +++ ...i_insert_move_tasks_share_dependencies.q.out | 3765 ++++ .../clientpositive/llap/orc_ppd_date.q.out | 301 + .../clientpositive/llap/orc_ppd_decimal.q.out | 490 + .../clientpositive/llap/orc_ppd_timestamp.q.out | 292 + .../llap/parquet_ppd_decimal.q.out | 858 + .../llap/partition_multilevels.q.out | 1644 ++ .../clientpositive/llap/rcfile_createas1.q.out | 180 + .../clientpositive/llap/rcfile_merge2.q.out | 230 + .../clientpositive/llap/rcfile_merge3.q.out | 169 + .../clientpositive/llap/rcfile_merge4.q.out | 169 + .../results/clientpositive/llap/sample10.q.out | 437 + .../llap/schema_evol_orc_vec_part.q.out | 666 +- .../schema_evol_orc_vec_part_all_complex.q.out | 168 +- ...schema_evol_orc_vec_part_all_primitive.q.out | 370 +- .../llap/schema_evol_orc_vec_table.q.out | 365 +- .../llap/schema_evol_text_vec_part.q.out | 666 +- .../schema_evol_text_vec_part_all_complex.q.out | 168 +- ...chema_evol_text_vec_part_all_primitive.q.out | 370 +- .../llap/schema_evol_text_vec_table.q.out | 365 +- .../llap/schema_evol_text_vecrow_part.q.out | 666 +- ...hema_evol_text_vecrow_part_all_complex.q.out | 168 +- ...ma_evol_text_vecrow_part_all_primitive.q.out | 370 +- .../llap/schema_evol_text_vecrow_table.q.out | 365 +- .../results/clientpositive/llap/semijoin.q.out | 2751 +++ .../llap/special_character_in_tabnames_1.q.out | 19609 +++++++++++++++++ .../clientpositive/llap/subquery_notin.q.out | 1539 ++ .../llap/table_access_keys_stats.q.out | 606 + .../llap/udaf_collect_set_2.q.out | 742 + .../clientpositive/llap/union_remove_26.q.out | 849 + .../clientpositive/llap/union_top_level.q.out | 1193 + .../llap/vector_aggregate_9.q.out | 35 +- .../llap/vector_aggregate_without_gby.q.out | 4 +- .../llap/vector_auto_smb_mapjoin_14.q.out | 1973 +- .../llap/vector_between_columns.q.out | 115 +- .../clientpositive/llap/vector_between_in.q.out | 600 +- .../llap/vector_binary_join_groupby.q.out | 152 +- .../clientpositive/llap/vector_bround.q.out | 15 +- .../clientpositive/llap/vector_bucket.q.out | 27 +- .../llap/vector_cast_constant.q.out | 53 +- .../clientpositive/llap/vector_char_2.q.out | 144 +- .../clientpositive/llap/vector_char_4.q.out | 27 +- .../llap/vector_char_mapjoin1.q.out | 220 +- .../llap/vector_char_simple.q.out | 209 +- .../clientpositive/llap/vector_coalesce.q.out | 473 +- .../clientpositive/llap/vector_coalesce_2.q.out | 100 +- .../llap/vector_complex_all.q.out | 106 +- .../llap/vector_complex_join.q.out | 40 +- .../clientpositive/llap/vector_count.q.out | 146 +- .../llap/vector_count_distinct.q.out | 73 +- .../clientpositive/llap/vector_data_types.q.out | 53 +- .../llap/vector_decimal_aggregate.q.out | 95 +- .../llap/vector_decimal_cast.q.out | 77 +- .../llap/vector_decimal_expressions.q.out | 50 +- .../llap/vector_decimal_mapjoin.q.out | 59 +- .../llap/vector_decimal_math_funcs.q.out | 69 +- .../llap/vector_decimal_precision.q.out | 35 +- .../llap/vector_decimal_round.q.out | 189 +- .../llap/vector_decimal_round_2.q.out | 173 +- .../llap/vector_decimal_udf2.q.out | 62 +- .../clientpositive/llap/vector_distinct_2.q.out | 53 +- .../clientpositive/llap/vector_elt.q.out | 145 +- .../clientpositive/llap/vector_groupby4.q.out | 62 +- .../clientpositive/llap/vector_groupby6.q.out | 62 +- .../clientpositive/llap/vector_groupby_3.q.out | 55 +- .../llap/vector_groupby_mapjoin.q.out | 238 +- .../llap/vector_groupby_reduce.q.out | 286 +- .../llap/vector_grouping_sets.q.out | 53 +- .../clientpositive/llap/vector_if_expr.q.out | 47 +- .../llap/vector_include_no_sel.q.out | 75 +- .../clientpositive/llap/vector_inner_join.q.out | 686 +- .../clientpositive/llap/vector_interval_1.q.out | 347 +- .../clientpositive/llap/vector_interval_2.q.out | 448 +- .../llap/vector_interval_arithmetic.q.out | 334 +- .../llap/vector_interval_mapjoin.q.out | 63 +- .../clientpositive/llap/vector_join30.q.out | 907 +- .../llap/vector_join_part_col_char.q.out | 4 +- .../llap/vector_left_outer_join.q.out | 39 +- .../llap/vector_left_outer_join2.q.out | 230 +- .../llap/vector_leftsemi_mapjoin.q.out | 11428 +++++++--- .../llap/vector_mapjoin_reduce.q.out | 88 +- .../llap/vector_mr_diff_schema_alias.q.out | 44 +- .../llap/vector_multi_insert.q.out | 16 +- .../llap/vector_null_projection.q.out | 39 +- .../llap/vector_nullsafe_join.q.out | 628 +- .../llap/vector_number_compare_projection.q.out | 796 + .../clientpositive/llap/vector_nvl.q.out | 265 +- .../clientpositive/llap/vector_orderby_5.q.out | 67 +- .../llap/vector_outer_join0.q.out | 132 +- .../llap/vector_outer_join1.q.out | 252 +- .../llap/vector_outer_join2.q.out | 123 +- .../llap/vector_outer_join3.q.out | 327 +- .../llap/vector_outer_join4.q.out | 242 +- .../llap/vector_outer_join5.q.out | 914 +- .../llap/vector_outer_join6.q.out | 199 +- .../llap/vector_partition_diff_num_cols.q.out | 250 +- .../llap/vector_partitioned_date_time.q.out | 1053 +- .../clientpositive/llap/vector_reduce1.q.out | 42 +- .../clientpositive/llap/vector_reduce2.q.out | 42 +- .../clientpositive/llap/vector_reduce3.q.out | 42 +- .../llap/vector_reduce_groupby_decimal.q.out | 71 +- .../llap/vector_string_concat.q.out | 138 +- .../clientpositive/llap/vector_struct_in.q.out | 568 +- .../clientpositive/llap/vector_udf1.q.out | 1767 ++ .../clientpositive/llap/vector_varchar_4.q.out | 27 +- .../llap/vector_varchar_mapjoin1.q.out | 93 +- .../llap/vector_varchar_simple.q.out | 99 +- .../llap/vector_when_case_null.q.out | 52 +- .../clientpositive/llap/vectorization_0.q.out | 519 +- .../clientpositive/llap/vectorization_13.q.out | 114 +- .../clientpositive/llap/vectorization_14.q.out | 28 +- .../clientpositive/llap/vectorization_15.q.out | 28 +- .../clientpositive/llap/vectorization_16.q.out | 21 +- .../clientpositive/llap/vectorization_17.q.out | 23 +- .../clientpositive/llap/vectorization_7.q.out | 100 +- .../clientpositive/llap/vectorization_8.q.out | 100 +- .../clientpositive/llap/vectorization_9.q.out | 21 +- .../llap/vectorization_decimal_date.q.out | 76 +- .../llap/vectorization_part_project.q.out | 23 +- .../llap/vectorization_pushdown.q.out | 21 +- .../llap/vectorization_short_regress.q.out | 1002 +- .../llap/vectorized_bucketmapjoin1.q.out | 108 +- .../clientpositive/llap/vectorized_case.q.out | 62 +- .../clientpositive/llap/vectorized_casts.q.out | 16 +- .../llap/vectorized_context.q.out | 32 +- .../llap/vectorized_date_funcs.q.out | 314 +- .../llap/vectorized_distinct_gby.q.out | 51 +- .../vectorized_dynamic_partition_pruning.q.out | 1159 +- .../llap/vectorized_mapjoin.q.out | 71 +- .../llap/vectorized_math_funcs.q.out | 69 +- .../llap/vectorized_nested_mapjoin.q.out | 39 +- .../llap/vectorized_parquet.q.out | 25 +- .../llap/vectorized_parquet_types.q.out | 12 +- .../clientpositive/llap/vectorized_ptf.q.out | 668 +- .../llap/vectorized_shufflejoin.q.out | 73 +- .../llap/vectorized_string_funcs.q.out | 54 +- .../llap/vectorized_timestamp.q.out | 16 +- .../llap/vectorized_timestamp_funcs.q.out | 292 +- .../llap/vectorized_timestamp_ints_casts.q.out | 138 +- .../results/clientpositive/llap/windowing.q.out | 2338 ++ .../llap/windowing_windowspec2.q.out | 3084 +++ .../clientpositive/ppd_field_garbage.q.out | 14 +- .../spark/vector_between_in.q.out | 604 +- .../spark/vector_cast_constant.q.out | 53 +- .../clientpositive/spark/vector_char_4.q.out | 27 +- .../spark/vector_count_distinct.q.out | 74 +- .../spark/vector_data_types.q.out | 53 +- .../spark/vector_decimal_aggregate.q.out | 96 +- .../spark/vector_decimal_mapjoin.q.out | 58 +- .../spark/vector_distinct_2.q.out | 54 +- .../clientpositive/spark/vector_elt.q.out | 143 +- .../clientpositive/spark/vector_groupby_3.q.out | 56 +- .../spark/vector_inner_join.q.out | 678 +- .../spark/vector_left_outer_join.q.out | 39 +- .../spark/vector_mapjoin_reduce.q.out | 72 +- .../clientpositive/spark/vector_orderby_5.q.out | 68 +- .../spark/vector_outer_join0.q.out | 130 +- .../spark/vector_outer_join1.q.out | 248 +- .../spark/vector_outer_join2.q.out | 121 +- .../spark/vector_outer_join3.q.out | 342 +- .../spark/vector_outer_join4.q.out | 254 +- .../spark/vector_outer_join5.q.out | 968 +- .../spark/vector_string_concat.q.out | 137 +- .../clientpositive/spark/vector_varchar_4.q.out | 27 +- .../clientpositive/spark/vectorization_0.q.out | 519 +- .../clientpositive/spark/vectorization_13.q.out | 114 +- .../clientpositive/spark/vectorization_14.q.out | 28 +- .../clientpositive/spark/vectorization_15.q.out | 28 +- .../clientpositive/spark/vectorization_16.q.out | 21 +- .../clientpositive/spark/vectorization_17.q.out | 23 +- .../clientpositive/spark/vectorization_7.q.out | 118 +- .../clientpositive/spark/vectorization_8.q.out | 146 +- .../clientpositive/spark/vectorization_9.q.out | 21 +- .../spark/vectorization_decimal_date.q.out | 75 +- .../spark/vectorization_div0.q.out | 167 +- .../spark/vectorization_part_project.q.out | 23 +- .../spark/vectorization_pushdown.q.out | 21 +- .../spark/vectorization_short_regress.q.out | 1002 +- .../spark/vectorized_bucketmapjoin1.q.out | 135 +- .../clientpositive/spark/vectorized_case.q.out | 62 +- .../spark/vectorized_mapjoin.q.out | 70 +- .../spark/vectorized_math_funcs.q.out | 68 +- .../spark/vectorized_nested_mapjoin.q.out | 39 +- .../clientpositive/spark/vectorized_ptf.q.out | 693 +- .../spark/vectorized_shufflejoin.q.out | 80 +- .../spark/vectorized_string_funcs.q.out | 53 +- .../spark/vectorized_timestamp_funcs.q.out | 292 +- .../clientpositive/tez/explainanalyze_3.q.out | 58 +- .../clientpositive/tez/explainanalyze_5.q.out | 58 +- .../tez/vector_join_part_col_char.q.out | 4 +- .../tez/vector_non_string_partition.q.out | 98 +- .../clientpositive/tez/vectorization_div0.q.out | 167 +- .../tez/vectorization_limit.q.out | 339 +- .../clientpositive/udaf_collect_set_2.q.out | 64 +- .../vector_adaptor_usage_mode.q.out | 230 +- .../clientpositive/vector_aggregate_9.q.out | 34 +- .../vector_aggregate_without_gby.q.out | 20 +- .../vector_auto_smb_mapjoin_14.q.out | 604 +- .../clientpositive/vector_between_columns.q.out | 75 +- .../clientpositive/vector_between_in.q.out | 466 +- .../vector_binary_join_groupby.q.out | 96 +- .../results/clientpositive/vector_bround.q.out | 16 +- .../results/clientpositive/vector_bucket.q.out | 16 +- .../clientpositive/vector_cast_constant.q.out | 43 +- .../results/clientpositive/vector_char_2.q.out | 96 +- .../results/clientpositive/vector_char_4.q.out | 27 +- .../clientpositive/vector_char_mapjoin1.q.out | 123 +- .../clientpositive/vector_char_simple.q.out | 180 +- .../clientpositive/vector_coalesce.q.out | 394 +- .../clientpositive/vector_coalesce_2.q.out | 83 +- .../clientpositive/vector_complex_all.q.out | 84 +- .../clientpositive/vector_complex_join.q.out | 28 +- .../results/clientpositive/vector_count.q.out | 142 +- .../clientpositive/vector_count_distinct.q.out | 39 +- .../clientpositive/vector_data_types.q.out | 40 +- .../vector_decimal_aggregate.q.out | 74 +- .../clientpositive/vector_decimal_cast.q.out | 34 +- .../vector_decimal_expressions.q.out | 37 +- .../clientpositive/vector_decimal_mapjoin.q.out | 36 +- .../vector_decimal_math_funcs.q.out | 31 +- .../vector_decimal_precision.q.out | 34 +- .../clientpositive/vector_decimal_round.q.out | 129 +- .../clientpositive/vector_decimal_round_2.q.out | 132 +- .../clientpositive/vector_decimal_udf2.q.out | 62 +- .../clientpositive/vector_distinct_2.q.out | 38 +- .../results/clientpositive/vector_elt.q.out | 101 +- .../clientpositive/vector_empty_where.q.out | 168 +- .../clientpositive/vector_groupby4.q.out | 41 +- .../clientpositive/vector_groupby6.q.out | 41 +- .../clientpositive/vector_groupby_3.q.out | 39 +- .../clientpositive/vector_groupby_mapjoin.q.out | 24 +- .../clientpositive/vector_groupby_reduce.q.out | 178 +- .../clientpositive/vector_grouping_sets.q.out | 36 +- .../results/clientpositive/vector_if_expr.q.out | 37 +- .../clientpositive/vector_include_no_sel.q.out | 47 +- .../clientpositive/vector_inner_join.q.out | 396 +- .../clientpositive/vector_interval_1.q.out | 264 +- .../clientpositive/vector_interval_2.q.out | 348 +- .../vector_interval_arithmetic.q.out | 260 +- .../vector_interval_mapjoin.q.out | 40 +- .../results/clientpositive/vector_join30.q.out | 700 +- .../vector_join_part_col_char.q.out | 15 +- .../clientpositive/vector_left_outer_join.q.out | 20 +- .../vector_left_outer_join2.q.out | 156 +- .../vector_leftsemi_mapjoin.q.out | 7103 +++--- .../clientpositive/vector_mapjoin_reduce.q.out | 56 +- .../vector_mr_diff_schema_alias.q.out | 38 +- .../clientpositive/vector_multi_insert.q.out | 16 +- .../vector_non_constant_in_expr.q.out | 14 +- .../vector_non_string_partition.q.out | 72 +- .../clientpositive/vector_null_projection.q.out | 29 +- .../clientpositive/vector_nullsafe_join.q.out | 326 +- .../vector_number_compare_projection.q.out | 66 +- .../results/clientpositive/vector_nvl.q.out | 181 +- .../clientpositive/vector_orderby_5.q.out | 47 +- .../clientpositive/vector_outer_join0.q.out | 74 +- .../clientpositive/vector_outer_join1.q.out | 126 +- .../clientpositive/vector_outer_join2.q.out | 53 +- .../clientpositive/vector_outer_join3.q.out | 309 +- .../clientpositive/vector_outer_join4.q.out | 235 +- .../clientpositive/vector_outer_join5.q.out | 882 +- .../clientpositive/vector_outer_join6.q.out | 190 +- .../vector_partition_diff_num_cols.q.out | 190 +- .../vector_partitioned_date_time.q.out | 348 +- .../results/clientpositive/vector_reduce1.q.out | 32 +- .../results/clientpositive/vector_reduce2.q.out | 32 +- .../results/clientpositive/vector_reduce3.q.out | 32 +- .../vector_reduce_groupby_decimal.q.out | 47 +- .../clientpositive/vector_string_concat.q.out | 77 +- .../clientpositive/vector_string_decimal.q.out | 14 +- .../clientpositive/vector_struct_in.q.out | 228 +- .../vector_tablesample_rows.q.out | 88 +- .../results/clientpositive/vector_udf2.q.out | 30 +- .../results/clientpositive/vector_udf3.q.out | 27 +- .../clientpositive/vector_varchar_4.q.out | 27 +- .../vector_varchar_mapjoin1.q.out | 60 +- .../clientpositive/vector_varchar_simple.q.out | 75 +- .../clientpositive/vector_when_case_null.q.out | 40 +- .../clientpositive/vectorization_0.q.out | 398 +- .../clientpositive/vectorization_13.q.out | 94 +- .../clientpositive/vectorization_14.q.out | 28 +- .../clientpositive/vectorization_15.q.out | 28 +- .../clientpositive/vectorization_16.q.out | 20 +- .../clientpositive/vectorization_17.q.out | 20 +- .../clientpositive/vectorization_7.q.out | 74 +- .../clientpositive/vectorization_8.q.out | 74 +- .../clientpositive/vectorization_9.q.out | 20 +- .../vectorization_decimal_date.q.out | 33 +- .../clientpositive/vectorization_div0.q.out | 104 +- .../clientpositive/vectorization_limit.q.out | 224 +- .../vectorization_offset_limit.q.out | 52 +- .../vectorization_part_project.q.out | 20 +- .../clientpositive/vectorization_pushdown.q.out | 20 +- .../vectorization_short_regress.q.out | 800 +- .../vectorized_bucketmapjoin1.q.out | 99 +- .../clientpositive/vectorized_case.q.out | 62 +- .../clientpositive/vectorized_casts.q.out | 16 +- .../clientpositive/vectorized_context.q.out | 16 +- .../clientpositive/vectorized_date_funcs.q.out | 157 +- .../vectorized_distinct_gby.q.out | 40 +- .../clientpositive/vectorized_mapjoin.q.out | 48 +- .../clientpositive/vectorized_mapjoin2.q.out | 47 +- .../clientpositive/vectorized_math_funcs.q.out | 31 +- .../vectorized_nested_mapjoin.q.out | 20 +- .../clientpositive/vectorized_parquet.q.out | 28 +- .../vectorized_parquet_types.q.out | 48 +- .../results/clientpositive/vectorized_ptf.q.out | 728 +- .../clientpositive/vectorized_shufflejoin.q.out | 31 +- .../vectorized_string_funcs.q.out | 16 +- .../clientpositive/vectorized_timestamp.q.out | 80 +- .../vectorized_timestamp_funcs.q.out | 222 +- .../vectorized_timestamp_ints_casts.q.out | 62 +- .../compiler/errors/missing_overwrite.q.out | 2 +- .../org/apache/hive/service/cli/CLIService.java | 4 +- .../hive/service/cli/CLIServiceClient.java | 13 +- .../service/cli/EmbeddedCLIServiceClient.java | 5 +- .../hive/service/cli/operation/Operation.java | 6 +- .../service/cli/operation/OperationManager.java | 8 +- .../thrift/RetryingThriftCLIServiceClient.java | 8 +- .../cli/thrift/ThriftCLIServiceClient.java | 15 +- .../cli/TestRetryingThriftCLIServiceClient.java | 2 +- .../hive/ptest/api/server/TestExecutor.java | 1 + .../hive/ptest/execution/ExecutionPhase.java | 12 +- .../hive/ptest/execution/HostExecutor.java | 11 +- .../hive/ptest/execution/JUnitReportParser.java | 74 +- .../org/apache/hive/ptest/execution/PTest.java | 5 +- .../ptest/execution/conf/QFileTestBatch.java | 13 +- .../hive/ptest/execution/conf/TestBatch.java | 13 +- .../ptest/execution/conf/TestConfiguration.java | 4 + .../ptest/execution/conf/UnitTestBatch.java | 11 +- .../hive/ptest/execution/ssh/RSyncCommand.java | 3 +- .../execution/ssh/RSyncCommandExecutor.java | 5 + .../ptest2/src/main/resources/batch-exec.vm | 13 +- .../ptest2/src/main/resources/source-prep.vm | 4 +- .../hive/ptest/execution/AbstractTestPhase.java | 3 +- .../ptest/execution/TestExecutionPhase.java | 30 +- ...ExecutionPhase.testFailingQFile.approved.txt | 8 +- ...utionPhase.testPassingQFileTest.approved.txt | 8 +- ...utionPhase.testTimedOutUnitTest.approved.txt | 14 + .../hive/ptest/execution/TestHostExecutor.java | 3 +- .../hive/ptest/execution/TestReportParser.java | 6 +- ...tScripts.testAlternativeTestJVM.approved.txt | 13 +- .../TestScripts.testBatch.approved.txt | 13 +- .../execution/conf/TestQFileTestBatch.java | 4 +- 891 files changed, 164006 insertions(+), 21154 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/bd78d660/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/bd78d660/itests/pom.xml ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/bd78d660/ql/src/java/org/apache/hadoop/hive/ql/exec/MoveTask.java ---------------------------------------------------------------------- diff --cc ql/src/java/org/apache/hadoop/hive/ql/exec/MoveTask.java index 538bf79,ec21cd6..9bc4836 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/MoveTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/MoveTask.java @@@ -378,223 -553,6 +378,225 @@@ public class MoveTask extends Task<Move } } + private DataContainer handleStaticParts(Hive db, Table table, LoadTableDesc tbd, + TaskInformation ti) throws HiveException, IOException, InvalidOperationException { + List<String> partVals = MetaStoreUtils.getPvals(table.getPartCols(), tbd.getPartitionSpec()); + db.validatePartitionNameCharacters(partVals); + Utilities.LOG14535.info("loadPartition called from " + tbd.getSourcePath() + + " into " + tbd.getTable().getTableName()); + db.loadSinglePartition(tbd.getSourcePath(), tbd.getTable().getTableName(), + tbd.getPartitionSpec(), tbd.getReplace(), + tbd.getInheritTableSpecs(), isSkewedStoredAsDirs(tbd), work.isSrcLocal(), + work.getLoadTableWork().getWriteType() != AcidUtils.Operation.NOT_ACID, + hasFollowingStatsTask(), tbd.getMmWriteId()); + Partition partn = db.getPartition(table, tbd.getPartitionSpec(), false); + + if (ti.bucketCols != null || ti.sortCols != null) { + updatePartitionBucketSortColumns(db, table, partn, ti.bucketCols, + ti.numBuckets, ti.sortCols); + } + + DataContainer dc = new DataContainer(table.getTTable(), partn.getTPartition()); + // add this partition to post-execution hook + if (work.getOutputs() != null) { + work.getOutputs().add(new WriteEntity(partn, + (tbd.getReplace() ? WriteEntity.WriteType.INSERT_OVERWRITE + : WriteEntity.WriteType.INSERT))); + } + return dc; + } + + private DataContainer handleDynParts(Hive db, Table table, LoadTableDesc tbd, + TaskInformation ti, DynamicPartitionCtx dpCtx) throws HiveException, + IOException, InvalidOperationException { + DataContainer dc; + List<LinkedHashMap<String, String>> dps = Utilities.getFullDPSpecs(conf, dpCtx); + + // publish DP columns to its subscribers + if (dps != null && dps.size() > 0) { + pushFeed(FeedType.DYNAMIC_PARTITIONS, dps); + } + console.printInfo(System.getProperty("line.separator")); + long startTime = System.currentTimeMillis(); + // load the list of DP partitions and return the list of partition specs + // TODO: In a follow-up to HIVE-1361, we should refactor loadDynamicPartitions + // to use Utilities.getFullDPSpecs() to get the list of full partSpecs. + // After that check the number of DPs created to not exceed the limit and + // iterate over it and call loadPartition() here. + // The reason we don't do inside HIVE-1361 is the latter is large and we + // want to isolate any potential issue it may introduce. + Map<Map<String, String>, Partition> dp = + db.loadDynamicPartitions( + tbd.getSourcePath(), + tbd.getTable().getTableName(), + tbd.getPartitionSpec(), + tbd.getReplace(), + dpCtx.getNumDPCols(), + isSkewedStoredAsDirs(tbd), + work.getLoadTableWork().getWriteType() != AcidUtils.Operation.NOT_ACID, + SessionState.get().getTxnMgr().getCurrentTxnId(), hasFollowingStatsTask(), + work.getLoadTableWork().getWriteType(), + tbd.getMmWriteId()); + - console.printInfo("\t Time taken to load dynamic partitions: " + - (System.currentTimeMillis() - startTime)/1000.0 + " seconds"); ++ String loadTime = "\t Time taken to load dynamic partitions: " + ++ (System.currentTimeMillis() - startTime)/1000.0 + " seconds"; ++ console.printInfo(loadTime); ++ LOG.info(loadTime); + + if (dp.size() == 0 && conf.getBoolVar(HiveConf.ConfVars.HIVE_ERROR_ON_EMPTY_PARTITION)) { + throw new HiveException("This query creates no partitions." + + " To turn off this error, set hive.error.on.empty.partition=false."); + } + + startTime = System.currentTimeMillis(); + // for each partition spec, get the partition + // and put it to WriteEntity for post-exec hook + for(Map.Entry<Map<String, String>, Partition> entry : dp.entrySet()) { + Partition partn = entry.getValue(); + + if (ti.bucketCols != null || ti.sortCols != null) { + updatePartitionBucketSortColumns( + db, table, partn, ti.bucketCols, ti.numBuckets, ti.sortCols); + } + + WriteEntity enty = new WriteEntity(partn, + (tbd.getReplace() ? WriteEntity.WriteType.INSERT_OVERWRITE : + WriteEntity.WriteType.INSERT)); + if (work.getOutputs() != null) { + work.getOutputs().add(enty); + } + // Need to update the queryPlan's output as well so that post-exec hook get executed. + // This is only needed for dynamic partitioning since for SP the the WriteEntity is + // constructed at compile time and the queryPlan already contains that. + // For DP, WriteEntity creation is deferred at this stage so we need to update + // queryPlan here. + if (queryPlan.getOutputs() == null) { + queryPlan.setOutputs(new LinkedHashSet<WriteEntity>()); + } + queryPlan.getOutputs().add(enty); + + // update columnar lineage for each partition + dc = new DataContainer(table.getTTable(), partn.getTPartition()); + + // Don't set lineage on delete as we don't have all the columns + if (SessionState.get() != null && + work.getLoadTableWork().getWriteType() != AcidUtils.Operation.DELETE && + work.getLoadTableWork().getWriteType() != AcidUtils.Operation.UPDATE) { + SessionState.get().getLineageState().setLineage(tbd.getSourcePath(), dc, + table.getCols()); + } + LOG.info("\tLoading partition " + entry.getKey()); + } + console.printInfo("\t Time taken for adding to write entity : " + + (System.currentTimeMillis() - startTime)/1000.0 + " seconds"); + dc = null; // reset data container to prevent it being added again. + return dc; + } + + private void inferTaskInformation(TaskInformation ti) { + // Find the first ancestor of this MoveTask which is some form of map reduce task + // (Either standard, local, or a merge) + while (ti.task.getParentTasks() != null && ti.task.getParentTasks().size() == 1) { + ti.task = (Task)ti.task.getParentTasks().get(0); + // If it was a merge task or a local map reduce task, nothing can be inferred + if (ti.task instanceof MergeFileTask || ti.task instanceof MapredLocalTask) { + break; + } + + // If it's a standard map reduce task, check what, if anything, it inferred about + // the directory this move task is moving + if (ti.task instanceof MapRedTask) { + MapredWork work = (MapredWork)ti.task.getWork(); + MapWork mapWork = work.getMapWork(); + ti.bucketCols = mapWork.getBucketedColsByDirectory().get(ti.path); + ti.sortCols = mapWork.getSortedColsByDirectory().get(ti.path); + if (work.getReduceWork() != null) { + ti.numBuckets = work.getReduceWork().getNumReduceTasks(); + } + + if (ti.bucketCols != null || ti.sortCols != null) { + // This must be a final map reduce task (the task containing the file sink + // operator that writes the final output) + assert work.isFinalMapRed(); + } + break; + } + + // If it's a move task, get the path the files were moved from, this is what any + // preceding map reduce task inferred information about, and moving does not invalidate + // those assumptions + // This can happen when a conditional merge is added before the final MoveTask, but the + // condition for merging is not met, see GenMRFileSink1. + if (ti.task instanceof MoveTask) { + MoveTask mt = (MoveTask)ti.task; + if (mt.getWork().getLoadFileWork() != null) { + ti.path = mt.getWork().getLoadFileWork().getSourcePath().toUri().toString(); + } + } + } + } + + private void checkFileFormats(Hive db, LoadTableDesc tbd, Table table) + throws HiveException { + if (work.getCheckFileFormat()) { + // Get all files from the src directory + FileStatus[] dirs; + ArrayList<FileStatus> files; + FileSystem srcFs; // source filesystem + try { + srcFs = tbd.getSourcePath().getFileSystem(conf); + dirs = srcFs.globStatus(tbd.getSourcePath()); + files = new ArrayList<FileStatus>(); + for (int i = 0; (dirs != null && i < dirs.length); i++) { + files.addAll(Arrays.asList(srcFs.listStatus(dirs[i].getPath(), FileUtils.HIDDEN_FILES_PATH_FILTER))); + // We only check one file, so exit the loop when we have at least + // one. + if (files.size() > 0) { + break; + } + } + } catch (IOException e) { + throw new HiveException( + "addFiles: filesystem error in check phase", e); + } + + // handle file format check for table level + if (HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVECHECKFILEFORMAT)) { + boolean flag = true; + // work.checkFileFormat is set to true only for Load Task, so assumption here is + // dynamic partition context is null + if (tbd.getDPCtx() == null) { + if (tbd.getPartitionSpec() == null || tbd.getPartitionSpec().isEmpty()) { + // Check if the file format of the file matches that of the table. + flag = HiveFileFormatUtils.checkInputFormat( + srcFs, conf, tbd.getTable().getInputFileFormatClass(), files); + } else { + // Check if the file format of the file matches that of the partition + Partition oldPart = db.getPartition(table, tbd.getPartitionSpec(), false); + if (oldPart == null) { + // this means we have just created a table and are specifying partition in the + // load statement (without pre-creating the partition), in which case lets use + // table input format class. inheritTableSpecs defaults to true so when a new + // partition is created later it will automatically inherit input format + // from table object + flag = HiveFileFormatUtils.checkInputFormat( + srcFs, conf, tbd.getTable().getInputFileFormatClass(), files); + } else { + flag = HiveFileFormatUtils.checkInputFormat( + srcFs, conf, oldPart.getInputFormatClass(), files); + } + } + if (!flag) { + throw new HiveException( + "Wrong file format. Please check the file's format."); + } + } else { + LOG.warn("Skipping file format check as dpCtx is not null"); + } + } + } + } + private boolean isSkewedStoredAsDirs(LoadTableDesc tbd) { return (tbd.getLbCtx() == null) ? false : tbd.getLbCtx() .isSkewedStoredAsDir(); http://git-wip-us.apache.org/repos/asf/hive/blob/bd78d660/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java ---------------------------------------------------------------------- diff --cc ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java index a2eff8b,a9dbc3e..d343e32 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java @@@ -1419,21 -1402,27 +1419,28 @@@ public final class Utilities FileStatus[] statuses = HiveStatsUtils.getFileStatusRecurse( tmpPath, ((dpCtx == null) ? 1 : dpCtx.getNumDPCols()), fs); if(statuses != null && statuses.length > 0) { + PerfLogger perfLogger = SessionState.getPerfLogger(); + perfLogger.PerfLogBegin("FileSinkOperator", "RemoveTempOrDuplicateFiles"); // remove any tmp file or double-committed output files List<Path> emptyBuckets = Utilities.removeTempOrDuplicateFiles(fs, statuses, dpCtx, conf, hconf); + perfLogger.PerfLogEnd("FileSinkOperator", "RemoveTempOrDuplicateFiles"); // create empty buckets if necessary if (emptyBuckets.size() > 0) { + perfLogger.PerfLogBegin("FileSinkOperator", "CreateEmptyBuckets"); createEmptyBuckets(hconf, emptyBuckets, conf, reporter); + perfLogger.PerfLogEnd("FileSinkOperator", "CreateEmptyBuckets"); } - // move to the file destination - log.info("Moving tmp dir: " + tmpPath + " to: " + specPath); + Utilities.LOG14535.info("Moving tmp dir: " + tmpPath + " to: " + specPath); + perfLogger.PerfLogBegin("FileSinkOperator", "RenameOrMoveFiles"); Utilities.renameOrMoveFiles(fs, tmpPath, specPath); + perfLogger.PerfLogEnd("FileSinkOperator", "RenameOrMoveFiles"); } } else { + Utilities.LOG14535.info("deleting tmpPath " + tmpPath); fs.delete(tmpPath, true); } + Utilities.LOG14535.info("deleting taskTmpPath " + taskTmpPath); fs.delete(taskTmpPath, true); } http://git-wip-us.apache.org/repos/asf/hive/blob/bd78d660/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java ---------------------------------------------------------------------- diff --cc ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java index 84c1e7b,dab4c6a..e66948f --- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java @@@ -1585,31 -1568,20 +1586,34 @@@ public class Hive newPartPath = oldPartPath; } List<Path> newFiles = null; + PerfLogger perfLogger = SessionState.getPerfLogger(); + perfLogger.PerfLogBegin("MoveTask", "FileMoves"); - if (replace || (oldPart == null && !isAcid)) { - replaceFiles(tbl.getPath(), loadPath, newPartPath, oldPartPath, getConf(), - isSrcLocal); - } else { - if (conf.getBoolVar(ConfVars.FIRE_EVENTS_FOR_DML) && !tbl.isTemporary() && oldPart != null) { - newFiles = Collections.synchronizedList(new ArrayList<Path>()); + if (mmWriteId != null) { + Utilities.LOG14535.info("not moving " + loadPath + " to " + newPartPath); + assert !isAcid; + if (areEventsForDmlNeeded(tbl, oldPart)) { + newFiles = listFilesCreatedByQuery(loadPath, mmWriteId); + } + Utilities.LOG14535.info("maybe deleting stuff from " + oldPartPath + " (new " + newPartPath + ") for replace"); + if (replace && oldPartPath != null) { // TODO# is this correct? ignore until iow jira + deleteOldPathForReplace(newPartPath, oldPartPath, + getConf(), new ValidWriteIds.IdPathFilter(mmWriteId, false)); } + } else { + Utilities.LOG14535.info("moving " + loadPath + " to " + newPartPath); + if (replace || (oldPart == null && !isAcid)) { + replaceFiles(tbl.getPath(), loadPath, newPartPath, oldPartPath, getConf(), + isSrcLocal); + } else { + if (areEventsForDmlNeeded(tbl, oldPart)) { + newFiles = Collections.synchronizedList(new ArrayList<Path>()); + } - FileSystem fs = tbl.getDataLocation().getFileSystem(conf); - Hive.copyFiles(conf, loadPath, newPartPath, fs, isSrcLocal, isAcid, newFiles); + FileSystem fs = tbl.getDataLocation().getFileSystem(conf); + Hive.copyFiles(conf, loadPath, newPartPath, fs, isSrcLocal, isAcid, newFiles); + } } + perfLogger.PerfLogEnd("MoveTask", "FileMoves"); Partition newTPart = oldPart != null ? oldPart : new Partition(tbl, partSpec, newPartPath); alterPartitionSpecInMemory(tbl, partSpec, newTPart.getTPartition(), inheritTableSpecs, newPartPath.toString()); validatePartition(newTPart); http://git-wip-us.apache.org/repos/asf/hive/blob/bd78d660/ql/src/java/org/apache/hadoop/hive/ql/plan/FileSinkDesc.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/bd78d660/ql/src/java/org/apache/hadoop/hive/ql/plan/MapWork.java ----------------------------------------------------------------------