HIVE-14671 : merge master into hive-14535 (Sergey Shelukhin)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/379d9bab Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/379d9bab Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/379d9bab Branch: refs/heads/hive-14535 Commit: 379d9babdd43d459b0acfb7663527850320fdbb6 Parents: 5b3c797 fb07a11 Author: sergey <[email protected]> Authored: Wed Sep 27 13:22:07 2017 -0700 Committer: sergey <[email protected]> Committed: Wed Sep 27 13:22:07 2017 -0700 ---------------------------------------------------------------------- .../hive/common/ValidCompactorTxnList.java | 8 +- .../hadoop/hive/common/ValidReadTxnList.java | 7 +- .../apache/hadoop/hive/common/ValidTxnList.java | 4 + .../org/apache/hadoop/hive/conf/HiveConf.java | 62 +- .../druid/io/DruidQueryBasedInputFormat.java | 7 +- .../results/positive/hbase_custom_key2.q.out | 2 +- .../results/positive/hbase_custom_key3.q.out | 2 +- .../results/positive/hbase_ppd_key_range.q.out | 2 +- .../test/results/positive/hbase_pushdown.q.out | 2 +- .../test/results/positive/hbase_queries.q.out | 2 +- .../hbase_single_sourced_multi_insert.q.out | 4 +- hcatalog/core/pom.xml | 7 + .../apache/hive/hcatalog/cli/TestPermsGrp.java | 5 +- .../mapreduce/TestHCatMultiOutputFormat.java | 4 +- .../mapreduce/TestHCatPartitionPublish.java | 5 +- hcatalog/webhcat/java-client/pom.xml | 7 + .../hive/hcatalog/api/TestHCatClient.java | 6 +- hcatalog/webhcat/svr/pom.xml | 7 + .../hive/hcatalog/templeton/TestWebHCatE2e.java | 4 +- .../antlr4/org/apache/hive/hplsql/Hplsql.g4 | 7 + .../main/java/org/apache/hive/hplsql/Copy.java | 10 +- .../main/java/org/apache/hive/hplsql/Exec.java | 8 + .../main/java/org/apache/hive/hplsql/Meta.java | 71 +- .../main/java/org/apache/hive/hplsql/Row.java | 7 + .../main/java/org/apache/hive/hplsql/Stmt.java | 281 + .../apache/hive/hplsql/functions/Function.java | 3 + hplsql/src/main/resources/hplsql-site.xml | 2 - .../org/apache/hive/hplsql/TestHplsqlLocal.java | 10 + hplsql/src/test/queries/db/summary.sql | 15 + .../src/test/queries/local/create_function5.sql | 11 + .../test/queries/local/create_procedure4.sql | 10 + hplsql/src/test/results/db/summary.out.txt | 47 + .../test/results/local/create_function3.out.txt | 2 + .../test/results/local/create_function4.out.txt | 1 + .../test/results/local/create_function5.out.txt | 8 + .../results/local/create_procedure4.out.txt | 8 + .../mapjoin/MapJoinMultiKeyBench.java | 94 +- .../mapjoin/MapJoinOneLongKeyBench.java | 94 +- .../mapjoin/MapJoinOneStringKeyBench.java | 94 +- .../security/TestHadoopAuthBridge23.java | 4 +- itests/hive-unit/pom.xml | 8 +- .../AbstractTestAuthorizationApiAuthorizer.java | 4 +- .../hadoop/hive/metastore/TestFilterHooks.java | 4 +- ...TestHiveMetaStoreWithEnvironmentContext.java | 4 +- .../hive/metastore/TestMarkPartitionRemote.java | 2 +- .../metastore/TestMetaStoreAuthorization.java | 2 +- .../TestMetaStoreEndFunctionListener.java | 4 +- .../metastore/TestMetaStoreEventListener.java | 4 +- .../TestMetaStoreEventListenerOnlyOnCommit.java | 4 +- .../metastore/TestMetaStoreInitListener.java | 4 +- .../metastore/TestMetaStoreListenersError.java | 4 +- .../hive/metastore/TestMetaStoreMetrics.java | 4 +- .../hive/metastore/TestRemoteHiveMetaStore.java | 4 +- .../TestRemoteHiveMetaStoreIpAddress.java | 4 +- .../hive/metastore/TestRetryingHMSHandler.java | 4 +- ...estDDLWithRemoteMetastoreSecondNamenode.java | 6 +- .../hadoop/hive/ql/parse/TestCopyUtils.java | 137 + .../hadoop/hive/ql/parse/TestExportImport.java | 10 +- .../hive/ql/parse/TestReplicationScenarios.java | 163 +- ...TestReplicationScenariosAcrossInstances.java | 29 + .../hadoop/hive/ql/parse/WarehouseInstance.java | 97 +- .../security/StorageBasedMetastoreTestBase.java | 6 +- .../TestAuthorizationPreEventListener.java | 6 +- .../TestClientSideAuthorizationProvider.java | 6 +- .../TestMetastoreAuthorizationProvider.java | 6 +- .../TestMultiAuthorizationPreEventListener.java | 6 +- .../hive/ql/txn/compactor/TestCompactor.java | 4 +- .../apache/hive/jdbc/TestJdbcWithMiniHS2.java | 82 + .../apache/hive/jdbc/TestJdbcWithMiniLlap.java | 74 + .../jdbc/TestServiceDiscoveryWithMiniHS2.java | 22 + .../cli/session/TestHiveSessionImpl.java | 3 +- .../service/cli/session/TestQueryDisplay.java | 3 +- .../thrift/ThriftCliServiceMessageSizeTest.java | 4 +- .../test/resources/testconfiguration.properties | 6 +- itests/util/pom.xml | 6 + .../org/apache/hadoop/hive/ql/QTestUtil.java | 2 +- .../org/apache/hive/jdbc/miniHS2/MiniHS2.java | 12 +- .../hive/cli/control/TestDanglingQOuts.java | 120 + .../org/apache/hive/jdbc/HiveConnection.java | 15 + .../org/apache/hive/jdbc/HiveStatement.java | 11 + jdbc/src/java/org/apache/hive/jdbc/Utils.java | 15 + .../hive/jdbc/ZooKeeperHiveClientHelper.java | 118 +- .../hive/llap/tez/LlapProtocolClientProxy.java | 37 +- .../hive/registry/impl/TezAmInstance.java | 9 +- .../hadoop/hive/llap/TestAsyncPbRpcProxy.java | 8 +- .../plugin/rpc/LlapPluginProtocolProtos.java | 260 +- .../hadoop/hive/llap/AsyncPbRpcProxy.java | 83 +- .../llap/impl/LlapPluginProtocolClientImpl.java | 5 +- .../hadoop/hive/llap/impl/ProtobufProxy.java | 31 +- .../src/protobuf/LlapPluginProtocol.proto | 5 +- llap-server/pom.xml | 8 + .../services/impl/TestLlapWebServices.java | 4 +- .../tezplugins/LlapTaskSchedulerService.java | 4 +- .../endpoint/LlapPluginServerImpl.java | 23 +- metastore/pom.xml | 11 + .../hadoop/hive/metastore/HiveAlterHandler.java | 31 +- .../hadoop/hive/metastore/HiveMetaStore.java | 42 +- .../hive/metastore/MetaStoreDirectSql.java | 10 +- .../hadoop/hive/metastore/MetaStoreUtils.java | 165 +- .../hadoop/hive/metastore/ObjectStore.java | 3 +- .../hadoop/hive/metastore/txn/TxnUtils.java | 8 +- .../hive/metastore/MetaStoreTestUtils.java | 147 + .../metastore/TestHiveMetaStoreGetMetaConf.java | 2 +- .../TestHiveMetaStorePartitionSpecs.java | 2 +- .../TestRetriesInRetryingHMSHandler.java | 2 +- .../txn/TestValidCompactorTxnList.java | 6 +- pom.xml | 8 +- ql/pom.xml | 21 +- .../metastore/SynchronizedMetaStoreClient.java | 24 + .../java/org/apache/hadoop/hive/ql/Driver.java | 41 +- .../apache/hadoop/hive/ql/DriverContext.java | 2 +- .../hadoop/hive/ql/exec/ColumnStatsTask.java | 3 +- .../hive/ql/exec/ColumnStatsUpdateTask.java | 3 +- .../hadoop/hive/ql/exec/ConditionalTask.java | 7 +- .../org/apache/hadoop/hive/ql/exec/DDLTask.java | 34 +- .../hive/ql/exec/ExplainSQRewriteTask.java | 5 + .../apache/hadoop/hive/ql/exec/ExplainTask.java | 68 +- .../apache/hadoop/hive/ql/exec/FetchTask.java | 5 + .../hadoop/hive/ql/exec/FunctionTask.java | 8 + .../apache/hadoop/hive/ql/exec/MoveTask.java | 32 +- .../apache/hadoop/hive/ql/exec/NodeUtils.java | 7 +- .../hadoop/hive/ql/exec/OperatorUtils.java | 4 +- .../org/apache/hadoop/hive/ql/exec/Task.java | 61 +- .../apache/hadoop/hive/ql/exec/Utilities.java | 106 +- .../hadoop/hive/ql/exec/mr/ExecDriver.java | 7 +- .../hadoop/hive/ql/exec/mr/MapRedTask.java | 2 - .../hadoop/hive/ql/exec/repl/ReplDumpTask.java | 5 + .../ql/exec/repl/bootstrap/ReplLoadTask.java | 8 +- .../ql/exec/repl/bootstrap/ReplLoadWork.java | 20 +- .../bootstrap/load/table/LoadPartitions.java | 3 +- .../repl/bootstrap/load/table/LoadTable.java | 3 +- .../exec/repl/bootstrap/load/util/Context.java | 15 +- .../ql/exec/spark/HiveSparkClientFactory.java | 16 +- .../ql/exec/spark/RemoteHiveSparkClient.java | 6 +- .../hadoop/hive/ql/exec/tez/AmPluginNode.java | 43 + .../ql/exec/tez/GuaranteedTasksAllocator.java | 171 + .../ql/exec/tez/LlapPluginEndpointClient.java | 30 + .../exec/tez/LlapPluginEndpointClientImpl.java | 123 + .../ql/exec/tez/QueryAllocationManager.java | 32 + .../hadoop/hive/ql/exec/tez/TezSessionPool.java | 85 +- .../hive/ql/exec/tez/TezSessionPoolManager.java | 59 +- .../hive/ql/exec/tez/TezSessionPoolSession.java | 55 +- .../hive/ql/exec/tez/TezSessionState.java | 29 +- .../apache/hadoop/hive/ql/exec/tez/TezTask.java | 23 +- .../hadoop/hive/ql/exec/tez/WmTezSession.java | 121 + .../hive/ql/exec/tez/WorkloadManager.java | 372 + .../ql/exec/tez/monitoring/TezJobMonitor.java | 2 + .../org/apache/hadoop/hive/ql/hooks/Entity.java | 28 +- .../hadoop/hive/ql/hooks/LineageInfo.java | 2 +- .../hadoop/hive/ql/hooks/WriteEntity.java | 5 + .../org/apache/hadoop/hive/ql/io/AcidUtils.java | 5 +- .../apache/hadoop/hive/ql/io/BucketCodec.java | 23 +- .../hadoop/hive/ql/io/merge/MergeFileTask.java | 1 - .../hadoop/hive/ql/log/LogDivertAppender.java | 25 +- .../hive/ql/log/LogDivertAppenderForTest.java | 18 +- .../apache/hadoop/hive/ql/metadata/Hive.java | 20 +- .../hive/ql/optimizer/GenMapRedUtils.java | 8 +- .../HiveJoinPushTransitivePredicatesRule.java | 21 +- .../HiveReduceExpressionsWithStatsRule.java | 60 +- .../hive/ql/optimizer/lineage/LineageCtx.java | 3 +- .../physical/LlapClusterStateForCompile.java | 105 +- .../hadoop/hive/ql/parse/CalcitePlanner.java | 19 +- .../hive/ql/parse/DDLSemanticAnalyzer.java | 45 +- .../apache/hadoop/hive/ql/parse/EximUtil.java | 15 + .../org/apache/hadoop/hive/ql/parse/HiveLexer.g | 2 + .../apache/hadoop/hive/ql/parse/HiveParser.g | 13 +- .../hadoop/hive/ql/parse/IdentifiersParser.g | 4 +- .../hive/ql/parse/ImportSemanticAnalyzer.java | 47 +- .../hive/ql/parse/LoadSemanticAnalyzer.java | 7 +- .../ql/parse/ReplicationSemanticAnalyzer.java | 10 +- .../hadoop/hive/ql/parse/SemanticAnalyzer.java | 16 +- .../hive/ql/parse/SemanticAnalyzerFactory.java | 2 + .../hadoop/hive/ql/parse/TaskCompiler.java | 40 +- .../hadoop/hive/ql/parse/repl/CopyUtils.java | 11 +- .../repl/dump/events/AddForeignKeyHandler.java | 8 + .../events/AddNotNullConstraintHandler.java | 8 + .../repl/dump/events/AddPrimaryKeyHandler.java | 8 + .../dump/events/AddUniqueConstraintHandler.java | 8 + .../ql/parse/repl/dump/io/FileOperations.java | 5 +- .../repl/load/message/DropTableHandler.java | 2 +- .../hive/ql/parse/spark/SparkCompiler.java | 6 +- .../hive/ql/plan/ColumnStatsUpdateWork.java | 12 +- .../hadoop/hive/ql/plan/ColumnStatsWork.java | 11 +- .../org/apache/hadoop/hive/ql/plan/DDLWork.java | 16 + .../hadoop/hive/ql/plan/DropTableDesc.java | 28 +- .../org/apache/hadoop/hive/ql/plan/Explain.java | 3 + .../hadoop/hive/ql/plan/ExprNodeDesc.java | 5 + .../hive/ql/plan/ExprNodeGenericFuncDesc.java | 23 + .../apache/hadoop/hive/ql/plan/FilterDesc.java | 12 +- .../hadoop/hive/ql/plan/HiveOperation.java | 3 +- .../hadoop/hive/ql/plan/KillQueryDesc.java | 45 + .../apache/hadoop/hive/ql/plan/LoadDesc.java | 3 +- .../hadoop/hive/ql/plan/LoadFileDesc.java | 2 +- .../hadoop/hive/ql/plan/LoadTableDesc.java | 36 +- .../apache/hadoop/hive/ql/plan/MoveWork.java | 27 +- .../apache/hadoop/hive/ql/plan/PlanUtils.java | 17 +- .../hive/ql/plan/ShowCompactionsDesc.java | 5 +- .../authorization/AuthorizationUtils.java | 2 + .../authorization/plugin/HiveOperationType.java | 1 + .../plugin/HivePrivilegeObject.java | 8 +- .../plugin/sqlstd/Operation2Privilege.java | 2 + .../hadoop/hive/ql/session/KillQuery.java | 25 + .../hadoop/hive/ql/session/LineageState.java | 26 +- .../hadoop/hive/ql/session/NullKillQuery.java | 28 + .../hadoop/hive/ql/session/SessionState.java | 20 + .../apache/hadoop/hive/ql/stats/StatsUtils.java | 50 +- .../hive/ql/txn/compactor/CompactorMR.java | 9 +- .../org/apache/hadoop/hive/ql/udf/UDFType.java | 8 + .../hive/ql/udf/generic/GenericUDFOPAnd.java | 2 + .../hive/ql/udf/generic/GenericUDFOPOr.java | 2 + .../hadoop/hive/ql/exec/TestExplainTask.java | 8 +- .../hadoop/hive/ql/exec/TestUtilities.java | 22 + .../hive/ql/exec/tez/SampleTezSessionState.java | 27 +- .../exec/tez/TestGuaranteedTaskAllocator.java | 151 + .../TestHostAffinitySplitLocationProvider.java | 8 +- .../hive/ql/exec/tez/TestTezSessionPool.java | 38 +- .../hadoop/hive/ql/exec/tez/TestTezTask.java | 16 +- .../hive/ql/exec/tez/TestWorkloadManager.java | 173 + .../hadoop/hive/ql/metadata/TestHiveRemote.java | 4 +- ...TestGenMapRedUtilsCreateConditionalTask.java | 62 +- .../TestHiveReduceExpressionsWithStatsRule.java | 203 + .../TestSQL11ReservedKeyWordsNegative.java | 13 + .../TestSQLStdHiveAccessControllerHS2.java | 2 +- .../clientnegative/authorization_kill_query.q | 15 + .../clientnegative/subquery_missing_from.q | 1 - .../clientnegative/subquery_select_no_source.q | 2 - .../clientpositive/bucket_map_join_tez1.q | 149 +- .../clientpositive/bucket_map_join_tez2.q | 57 +- .../clientpositive/drop_deleted_partitions.q | 18 + ql/src/test/queries/clientpositive/kill_query.q | 7 + .../queries/clientpositive/optimize_join_ptp.q | 16 + .../queries/clientpositive/remove_exprs_stats.q | 20 + .../spark_combine_equivalent_work_2.q | 41 + .../authorization_kill_query.q.out | 34 + .../authorization_uri_import.q.out | 40 - .../results/clientnegative/orc_merge1.q.out | 75 - .../results/clientnegative/orc_merge2.q.out | 75 - .../results/clientnegative/orc_merge3.q.out | 75 - .../results/clientnegative/orc_merge4.q.out | 87 - .../results/clientnegative/orc_merge5.q.out | 75 - .../clientnegative/subquery_missing_from.q.out | 3 - .../subquery_select_no_source.q.out | 1 - .../clientnegative/subquery_shared_alias.q.out | 1 - .../clientpositive/alter_merge_orc.q.out | 263 - .../clientpositive/alter_merge_stats_orc.q.out | 382 - .../annotate_stats_deep_filters.q.out | 4 +- .../clientpositive/annotate_stats_filter.q.out | 2 +- .../clientpositive/annotate_stats_groupby.q.out | 22 +- .../annotate_stats_groupby2.q.out | 12 +- .../annotate_stats_join_pkfk.q.out | 14 +- .../clientpositive/annotate_stats_select.q.out | 8 +- .../clientpositive/annotate_stats_table.q.out | 4 +- .../clientpositive/authorization_2.q.out | 667 - .../clientpositive/autoColumnStats_1.q.out | 1379 - .../clientpositive/autoColumnStats_2.q.out | 1500 - .../results/clientpositive/auto_join20.q.out | 2 +- .../results/clientpositive/auto_join28.q.out | 2 +- .../results/clientpositive/auto_join29.q.out | 14 +- .../results/clientpositive/auto_join30.q.out | 2183 -- .../results/clientpositive/auto_join4.q.out | 4 +- .../results/clientpositive/auto_join5.q.out | 2 +- .../results/clientpositive/auto_join6.q.out | 4 +- .../results/clientpositive/auto_join7.q.out | 6 +- .../results/clientpositive/auto_join8.q.out | 4 +- .../clientpositive/auto_join_filters.q.out | 540 - .../clientpositive/auto_join_nulls.q.out | 217 - .../auto_join_reordering_values.q.out | 2 +- .../clientpositive/auto_smb_mapjoin_14.q.out | 1792 - .../clientpositive/auto_sortmerge_join_16.q.out | 256 - .../clientpositive/auto_sortmerge_join_5.q.out | 42 +- .../clientpositive/auto_sortmerge_join_6.q.out | 1353 - .../clientpositive/auto_sortmerge_join_8.q.out | 1459 - .../clientpositive/auto_sortmerge_join_9.q.out | 4820 --- .../clientpositive/beeline/mapjoin2.q.out | 4 + .../materialized_view_create_rewrite.q.out | 4 +- .../beeline/select_dummy_source.q.out | 22 +- .../clientpositive/beeline/smb_mapjoin_1.q.out | 10 +- .../clientpositive/beeline/smb_mapjoin_10.q.out | 2 +- .../clientpositive/beeline/smb_mapjoin_2.q.out | 20 +- .../clientpositive/beeline/smb_mapjoin_3.q.out | 10 +- .../test/results/clientpositive/bucket4.q.out | 467 - .../test/results/clientpositive/bucket5.q.out | 610 - .../test/results/clientpositive/bucket6.q.out | 189 - .../results/clientpositive/bucket_groupby.q.out | 1635 - .../results/clientpositive/bucket_many.q.out | 222 - .../clientpositive/bucketcontext_5.q.out | 14 +- .../clientpositive/bucketcontext_6.q.out | 6 +- .../bucketizedhiveinputformat.q.out | 116 - .../results/clientpositive/bucketmapjoin1.q.out | 1341 - .../results/clientpositive/bucketmapjoin2.q.out | 1738 - .../results/clientpositive/bucketmapjoin3.q.out | 1168 - .../results/clientpositive/bucketmapjoin4.q.out | 1050 - .../results/clientpositive/bucketmapjoin5.q.out | 8 +- .../results/clientpositive/bucketmapjoin6.q.out | 146 - .../results/clientpositive/bucketmapjoin7.q.out | 298 - .../clientpositive/bucketmapjoin_negative.q.out | 4 +- .../bucketmapjoin_negative2.q.out | 4 +- .../bucketmapjoin_negative3.q.out | 126 +- .../results/clientpositive/bucketpruning1.q.out | 2282 -- .../bucketsortoptimize_insert_2.q.out | 1244 - .../bucketsortoptimize_insert_6.q.out | 1323 - .../bucketsortoptimize_insert_7.q.out | 468 - .../test/results/clientpositive/cbo_const.q.out | 2 +- .../test/results/clientpositive/cbo_gby.q.out | 124 - .../test/results/clientpositive/cbo_join.q.out | 15028 -------- .../test/results/clientpositive/cbo_limit.q.out | 90 - .../cbo_rp_annotate_stats_groupby.q.out | 22 +- .../results/clientpositive/cbo_rp_gby.q.out | 124 - .../results/clientpositive/cbo_rp_join.q.out | 15028 -------- .../results/clientpositive/cbo_rp_join1.q.out | 64 +- .../results/clientpositive/cbo_rp_limit.q.out | 90 - .../clientpositive/cbo_rp_lineage2.q.out | 675 - .../clientpositive/cbo_rp_outer_join_ppr.q.out | 4 +- .../clientpositive/cbo_rp_semijoin.q.out | 440 - .../clientpositive/cbo_rp_subq_exists.q.out | 283 - .../results/clientpositive/cbo_rp_subq_in.q.out | 151 - .../clientpositive/cbo_rp_subq_not_in.q.out | 365 - .../cbo_rp_udaf_percentile_approx_23.q.out | 8 +- .../clientpositive/cbo_rp_udf_udaf.q.out | 123 - .../cbo_rp_udf_udaf_stats_opt.q.out | 124 - .../clientpositive/cbo_rp_unionDistinct_2.q.out | 551 - .../results/clientpositive/cbo_rp_views.q.out | 237 - .../clientpositive/cbo_rp_windowing_2.q.out | 2339 -- .../results/clientpositive/cbo_semijoin.q.out | 440 - .../results/clientpositive/cbo_subq_in.q.out | 151 - .../clientpositive/cbo_subq_not_in.q.out | 365 - .../results/clientpositive/cbo_udf_udaf.q.out | 125 - .../results/clientpositive/cbo_union_view.q.out | 6 +- .../test/results/clientpositive/cbo_views.q.out | 237 - .../test/results/clientpositive/cluster.q.out | 1449 - .../columnStatsUpdateForStatsOptimizer_1.q.out | 961 - .../clientpositive/column_access_stats.q.out | 869 - .../columnstats_part_coltype.q.out | 441 - .../clientpositive/columnstats_tbllvl.q.out | 24 +- .../clientpositive/compute_stats_date.q.out | 4 +- .../clientpositive/constant_prop_1.q.out | 2 +- .../clientpositive/constant_prop_3.q.out | 2 +- .../clientpositive/constprog_semijoin.q.out | 812 - .../clientpositive/correlated_join_keys.q.out | 8 +- .../clientpositive/correlationoptimizer1.q.out | 3091 -- .../clientpositive/correlationoptimizer10.q.out | 4 +- .../clientpositive/correlationoptimizer13.q.out | 2 +- .../clientpositive/correlationoptimizer2.q.out | 2257 -- .../clientpositive/correlationoptimizer3.q.out | 1422 - .../clientpositive/correlationoptimizer4.q.out | 1862 - .../clientpositive/correlationoptimizer5.q.out | 350 +- .../clientpositive/correlationoptimizer6.q.out | 3918 --- .../clientpositive/correlationoptimizer9.q.out | 8 +- ql/src/test/results/clientpositive/count.q.out | 752 - .../test/results/clientpositive/database.q.out | 1484 - .../clientpositive/dbtxnmgr_showlocks.q.out | 4 +- .../clientpositive/decimal_precision.q.out | 4 +- .../clientpositive/decimal_precision2.q.out | 10 +- .../results/clientpositive/decimal_udf.q.out | 178 +- .../results/clientpositive/decimal_udf2.q.out | 16 +- .../disable_merge_for_bucketing.q.out | 474 - .../display_colstats_tbllvl.q.out | 8 +- .../clientpositive/distinct_windowing.q.out | 60 +- .../distinct_windowing_no_cbo.q.out | 104 +- .../drop_deleted_partitions.q.out | 74 + .../drop_partition_with_stats.q.out | 496 - .../clientpositive/drop_table_with_index.q.out | 12 +- .../dynpart_sort_opt_vectorization.q.out | 2430 -- .../dynpart_sort_optimization.q.out | 3041 -- .../dynpart_sort_optimization2.q.out | 1750 - .../clientpositive/empty_dir_in_table.q.out | 46 - .../encryption_join_unencrypted_tbl.q.out | 8 +- .../test/results/clientpositive/escape1.q.out | Bin 54831 -> 0 bytes .../test/results/clientpositive/escape2.q.out | Bin 78516 -> 0 bytes .../results/clientpositive/except_all.q.out | 6 +- .../clientpositive/exchgpartition2lel.q.out | 203 - ...rnal_table_with_space_in_location_path.q.out | 88 - .../extrapolate_part_stats_partial_ndv.q.out | 1307 - .../file_with_header_footer.q.out | 184 - .../clientpositive/filter_cond_pushdown.q.out | 6 +- .../clientpositive/filter_cond_pushdown2.q.out | 42 +- .../filter_cond_pushdown_HIVE_15647.q.out | 10 +- .../clientpositive/filter_join_breaktask.q.out | 60 +- .../results/clientpositive/flatten_and_or.q.out | 2 +- .../clientpositive/fold_eq_with_case_when.q.out | 2 +- .../clientpositive/folder_predicate.q.out | 14 +- .../clientpositive/fouter_join_ppr.q.out | 8 +- .../clientpositive/gen_udf_example_add10.q.out | 12 +- .../results/clientpositive/global_limit.q.out | 1677 - .../test/results/clientpositive/groupby10.q.out | 80 +- .../test/results/clientpositive/groupby2.q.out | 130 - .../clientpositive/groupby_grouping_id2.q.out | 234 - .../clientpositive/groupby_grouping_id3.q.out | 32 +- .../groupby_grouping_sets_grouping.q.out | 226 +- .../groupby_multi_single_reducer3.q.out | 20 +- .../clientpositive/groupby_position.q.out | 2 +- .../clientpositive/groupby_resolution.q.out | 792 - .../test/results/clientpositive/having2.q.out | 2 +- .../identity_project_remove_skip.q.out | 2 +- .../clientpositive/import_exported_table.q.out | 28 - .../results/clientpositive/index_auto.q.out | 6 +- .../clientpositive/index_auto_mult_tables.q.out | 6 +- .../index_auto_mult_tables_compact.q.out | 6 +- .../clientpositive/index_auto_self_join.q.out | 12 +- .../clientpositive/index_auto_unused.q.out | 6 +- .../index_bitmap_compression.q.out | 4 +- .../clientpositive/index_compression.q.out | 4 +- .../results/clientpositive/index_serde.q.out | 8 +- .../infer_bucket_sort_bucketed_table.q.out | 121 - .../infer_bucket_sort_map_operators.q.out | 8 +- .../clientpositive/infer_const_type.q.out | 8 +- .../test/results/clientpositive/input12.q.out | 2 +- .../test/results/clientpositive/input13.q.out | 4 +- .../results/clientpositive/input16_cc.q.out | 534 - .../test/results/clientpositive/input22.q.out | 12 +- .../results/clientpositive/input3_limit.q.out | 16 +- ql/src/test/results/clientpositive/input4.q.out | 2 +- .../results/clientpositive/input_part2.q.out | 4 +- .../results/clientpositive/input_part4.q.out | 2 +- .../clientpositive/input_testxpath4.q.out | 4 +- .../test/results/clientpositive/insert1.q.out | 2 +- .../clientpositive/insert_dir_distcp.q.out | 14 - .../insert_into_with_schema.q.out | 348 - ql/src/test/results/clientpositive/join1.q.out | 1143 - ql/src/test/results/clientpositive/join19.q.out | 6 +- ql/src/test/results/clientpositive/join20.q.out | 2 +- .../clientpositive/join32_lessSize.q.out | 2651 -- ql/src/test/results/clientpositive/join4.q.out | 4 +- ql/src/test/results/clientpositive/join40.q.out | 2 +- ql/src/test/results/clientpositive/join45.q.out | 2 +- ql/src/test/results/clientpositive/join5.q.out | 2 +- ql/src/test/results/clientpositive/join6.q.out | 4 +- ql/src/test/results/clientpositive/join7.q.out | 6 +- ql/src/test/results/clientpositive/join8.q.out | 4 +- .../clientpositive/join_acid_non_acid.q.out | 54 - .../results/clientpositive/join_filters.q.out | 1484 - .../results/clientpositive/join_hive_626.q.out | 2 +- .../results/clientpositive/join_nulls.q.out | 652 - .../results/clientpositive/join_nullsafe.q.out | 1589 - .../results/clientpositive/join_parse.q.out | 2 +- .../results/clientpositive/join_reorder2.q.out | 4 +- .../results/clientpositive/join_reorder3.q.out | 4 +- .../test/results/clientpositive/join_star.q.out | 170 +- .../results/clientpositive/kill_query.q.out | 36 + .../results/clientpositive/lateral_view.q.out | 900 - .../clientpositive/leftsemijoin_mr.q.out | 98 - .../clientpositive/limit_join_transpose.q.out | 1813 - .../results/clientpositive/limit_pushdown.q.out | 1432 - .../clientpositive/limit_pushdown3.q.out | 1407 - .../test/results/clientpositive/lineage2.q.out | 705 - .../test/results/clientpositive/lineage3.q.out | 388 - .../clientpositive/list_bucket_dml_10.q.out | 357 - .../list_bucket_query_multiskew_2.q.out | 2 +- .../llap/acid_bucket_pruning.q.out | 8 +- .../llap/acid_vectorization.q.out | 120 - .../llap/acid_vectorization_partition.q.out | 60 - .../llap/acid_vectorization_project.q.out | 73 - .../alter_table_invalidate_column_stats.q.out | 966 - .../clientpositive/llap/auto_join29.q.out | 14 +- .../llap/auto_sortmerge_join_5.q.out | 46 +- .../llap/bucket_map_join_tez1.q.out | 4401 ++- .../llap/bucket_map_join_tez2.q.out | 1340 +- .../clientpositive/llap/bucketmapjoin1.q.out | 16 +- .../clientpositive/llap/bucketmapjoin4.q.out | 44 +- .../clientpositive/llap/bucketpruning1.q.out | 26 +- .../llap/bucketsortoptimize_insert_7.q.out | 4 +- .../clientpositive/llap/cbo_rp_subq_in.q.out | 123 - .../llap/cbo_rp_subq_not_in.q.out | 345 - .../llap/column_table_stats.q.out | 4 +- .../llap/constprog_semijoin.q.out | 2 +- .../llap/correlationoptimizer4.q.out | 324 +- .../results/clientpositive/llap/count.q.out | 130 +- .../clientpositive/llap/delete_orig_table.q.out | 61 - .../llap/dynamic_partition_pruning.q.out | 10 +- .../llap/dynamic_semijoin_reduction.q.out | 22 +- .../llap/dynamic_semijoin_reduction_2.q.out | 8 +- .../llap/dynamic_semijoin_reduction_3.q.out | 8 +- .../llap/dynamic_semijoin_reduction_sw.q.out | 8 +- .../llap/dynamic_semijoin_user_level.q.out | 14 +- .../llap/dynpart_sort_opt_vectorization.q.out | 30 +- .../llap/dynpart_sort_optimization.q.out | 322 +- .../llap/dynpart_sort_optimization2.q.out | 64 +- .../clientpositive/llap/except_distinct.q.out | 10 +- .../clientpositive/llap/explainuser_1.q.out | 142 +- .../clientpositive/llap/explainuser_2.q.out | 70 +- .../clientpositive/llap/explainuser_3.q.out | 522 - .../clientpositive/llap/explainuser_4.q.out | 12 +- .../llap/filter_join_breaktask.q.out | 76 +- .../clientpositive/llap/groupby_sort_1_23.q.out | 4310 --- .../llap/groupby_sort_skew_1_23.q.out | 4482 --- .../llap/hybridgrace_hashjoin_2.q.out | 8 +- .../llap/identity_project_remove_skip.q.out | 2 +- .../results/clientpositive/llap/insert1.q.out | 2 +- .../llap/insert_acid_dynamic_partition.q.out | 48 - .../llap/insert_acid_not_bucketed.q.out | 36 - .../llap/insert_values_acid_not_bucketed.q.out | 26 - .../llap/insert_values_orig_table.q.out | 80 - .../clientpositive/llap/join32_lessSize.q.out | 2 +- .../results/clientpositive/llap/join43.q.out | 616 - .../llap/join_is_not_distinct_from.q.out | 102 +- .../clientpositive/llap/join_nullsafe.q.out | 102 +- .../clientpositive/llap/kill_query.q.out | 36 + .../clientpositive/llap/llap_reader.q.out | 167 - .../results/clientpositive/llap/mapjoin2.q.out | 4 + .../clientpositive/llap/mapjoin_hint.q.out | 79 +- .../clientpositive/llap/mapjoin_mapjoin.q.out | 4 +- .../results/clientpositive/llap/mergejoin.q.out | 6 +- .../clientpositive/llap/multiMapJoin1.q.out | 8 +- .../clientpositive/llap/multi_insert.q.out | 32 +- ...i_insert_move_tasks_share_dependencies.q.out | 3765 -- .../clientpositive/llap/optimize_join_ptp.q.out | 130 + .../results/clientpositive/llap/orc_llap.q.out | 1205 - .../clientpositive/llap/orc_merge12.q.out | 822 - .../clientpositive/llap/orc_merge5.q.out | 16 +- .../clientpositive/llap/orc_merge6.q.out | 16 +- .../clientpositive/llap/orc_merge7.q.out | 12 +- .../llap/orc_merge_incompat1.q.out | 8 +- .../llap/orc_merge_incompat2.q.out | 6 +- .../llap/orc_predicate_pushdown.q.out | 20 +- .../llap/orc_vectorization_ppd.q.out | 288 - .../llap/parquet_ppd_decimal.q.out | 856 - .../llap/parquet_predicate_pushdown.q.out | 22 +- .../test/results/clientpositive/llap/pcs.q.out | 1780 - .../clientpositive/llap/ptf_matchpath.q.out | 42 +- .../clientpositive/llap/script_env_var1.q.out | 14 - .../clientpositive/llap/script_env_var2.q.out | 14 - .../clientpositive/llap/script_pipe.q.out | 125 - .../clientpositive/llap/scriptfile1.q.out | 59 - .../llap/select_dummy_source.q.out | 10 +- .../clientpositive/llap/semijoin_hint.q.out | 32 +- .../llap/show_create_database.q.out | 19 - .../results/clientpositive/llap/skewjoin.q.out | 6 +- .../clientpositive/llap/smb_mapjoin_15.q.out | 4 +- .../clientpositive/llap/smb_mapjoin_4.q.out | 224 +- .../clientpositive/llap/smb_mapjoin_5.q.out | 224 +- .../results/clientpositive/llap/sqlmerge.q.out | 4 +- .../results/clientpositive/llap/stats11.q.out | 16 +- .../clientpositive/llap/subquery_in.q.out | 4 +- .../clientpositive/llap/subquery_multi.q.out | 348 +- .../clientpositive/llap/subquery_notin.q.out | 12 +- .../clientpositive/llap/subquery_null_agg.q.out | 2 +- .../clientpositive/llap/subquery_scalar.q.out | 122 +- .../llap/tez_dynpart_hashjoin_1.q.out | 12 +- .../llap/tez_join_result_complex.q.out | 212 +- .../clientpositive/llap/tez_nway_join.q.out | 90 +- .../llap/tez_union_group_by.q.out | 2 +- .../llap/tez_vector_dynpart_hashjoin_1.q.out | 12 +- .../clientpositive/llap/transform1.q.out | 138 - .../clientpositive/llap/transform2.q.out | 9 - .../clientpositive/llap/transform_ppr1.q.out | 493 - .../clientpositive/llap/transform_ppr2.q.out | 399 - .../clientpositive/llap/union_view.q.out | 1209 - .../clientpositive/llap/update_orig_table.q.out | 62 - .../clientpositive/llap/vector_const.q.out | 64 - .../clientpositive/llap/vector_date_1.q.out | 4 +- .../llap/vector_decimal_cast.q.out | 2 +- .../llap/vector_decimal_expressions.q.out | 2 +- .../llap/vector_empty_where.q.out | 676 - .../vector_groupby_grouping_sets_grouping.q.out | 4 +- .../clientpositive/llap/vector_interval_2.q.out | 12 +- .../llap/vector_interval_mapjoin.q.out | 4 +- .../clientpositive/llap/vector_join.q.out | 104 - .../llap/vector_join_part_col_char.q.out | 173 - .../llap/vector_mapjoin_reduce.q.out | 2 +- .../llap/vector_mr_diff_schema_alias.q.out | 2 +- .../llap/vector_multi_insert.q.out | 2 +- .../llap/vector_non_constant_in_expr.q.out | 51 - .../llap/vector_non_string_partition.q.out | 276 - .../vector_orc_string_reader_empty_dict.q.out | 62 - .../clientpositive/llap/vector_order_null.q.out | 1382 - .../llap/vector_outer_reference_windowed.q.out | 1435 - .../llap/vector_string_decimal.q.out | 135 - .../llap/vector_tablesample_rows.q.out | 403 - .../clientpositive/llap/vector_udf2.q.out | 188 - .../clientpositive/llap/vector_windowing.q.out | 9768 ------ .../llap/vector_windowing_expressions.q.out | 2022 -- .../llap/vector_windowing_gby.q.out | 314 - .../llap/vector_windowing_gby2.q.out | 1158 - .../vector_windowing_multipartitioning.q.out | 11587 ------ .../llap/vector_windowing_navfn.q.out | 84 +- .../llap/vector_windowing_order_null.q.out | 1232 - .../vector_windowing_range_multiorder.q.out | 12584 ------- .../llap/vector_windowing_rank.q.out | 1860 - .../llap/vector_windowing_streaming.q.out | 1036 - .../llap/vector_windowing_windowspec.q.out | 2374 -- .../llap/vector_windowing_windowspec4.q.out | 223 - .../clientpositive/llap/vectorization_0.q.out | 8 +- .../clientpositive/llap/vectorization_1.q.out | 2 +- .../clientpositive/llap/vectorization_10.q.out | 2 +- .../clientpositive/llap/vectorization_12.q.out | 2 +- .../clientpositive/llap/vectorization_13.q.out | 4 +- .../clientpositive/llap/vectorization_14.q.out | 2 +- .../clientpositive/llap/vectorization_15.q.out | 2 +- .../clientpositive/llap/vectorization_16.q.out | 2 +- .../clientpositive/llap/vectorization_17.q.out | 2 +- .../clientpositive/llap/vectorization_2.q.out | 2 +- .../clientpositive/llap/vectorization_3.q.out | 2 +- .../clientpositive/llap/vectorization_4.q.out | 2 +- .../clientpositive/llap/vectorization_5.q.out | 2 +- .../clientpositive/llap/vectorization_6.q.out | 2 +- .../clientpositive/llap/vectorization_7.q.out | 4 +- .../clientpositive/llap/vectorization_8.q.out | 4 +- .../clientpositive/llap/vectorization_9.q.out | 2 +- .../llap/vectorization_decimal_date.q.out | 2 +- .../llap/vectorization_div0.q.out | 615 - .../llap/vectorization_limit.q.out | 942 - .../llap/vectorization_offset_limit.q.out | 187 - .../llap/vectorization_short_regress.q.out | 20 +- .../clientpositive/llap/vectorized_case.q.out | 4 +- .../llap/vectorized_context.q.out | 2 +- .../vectorized_dynamic_partition_pruning.q.out | 10 +- .../vectorized_dynamic_semijoin_reduction.q.out | 16 +- ...vectorized_dynamic_semijoin_reduction2.q.out | 16 +- .../llap/vectorized_mapjoin2.q.out | 213 - .../llap/vectorized_nested_mapjoin.q.out | 2 +- .../llap/vectorized_string_funcs.q.out | 2 +- .../llap/windowing_windowspec.q.out | 955 - .../clientpositive/llap_partitioned.q.out | 2003 -- .../clientpositive/llap_uncompressed.q.out | 2 +- .../clientpositive/load_dyn_part13.q.out | 2 +- .../results/clientpositive/load_dyn_part5.q.out | 1033 - .../test/results/clientpositive/load_fs2.q.out | 121 - .../load_hdfs_file_with_space_in_the_name.q.out | 25 - .../clientpositive/louter_join_ppr.q.out | 8 +- .../test/results/clientpositive/mapjoin2.q.out | 4 + .../mapjoin_filter_on_outerjoin.q.out | 4 +- .../clientpositive/mapjoin_mapjoin.q.out | 4 +- .../test/results/clientpositive/masking_1.q.out | 2 +- .../test/results/clientpositive/masking_3.q.out | 2 +- .../clientpositive/masking_disablecbo_1.q.out | 2 +- .../clientpositive/masking_disablecbo_3.q.out | 12 +- .../materialized_view_create_rewrite.q.out | 4 +- .../results/clientpositive/metadataonly1.q.out | 1956 -- .../clientpositive/min_structvalue.q.out | 45 - .../results/clientpositive/multiMapJoin1.q.out | 3081 -- .../results/clientpositive/multiMapJoin2.q.out | 3464 -- .../clientpositive/multi_column_in.q.out | 408 - .../clientpositive/multi_column_in_single.q.out | 370 - .../results/clientpositive/multi_insert.q.out | 2749 -- .../clientpositive/multi_insert_gby.q.out | 2 +- .../clientpositive/multi_insert_gby4.q.out | 2 +- .../multi_insert_lateral_view.q.out | 1586 - ...i_insert_move_tasks_share_dependencies.q.out | 56 +- .../multi_insert_with_join2.q.out | 14 +- .../clientpositive/nested_column_pruning.q.out | 2 +- .../clientpositive/non_native_window_udf.q.out | 52 - .../results/clientpositive/nonmr_fetch.q.out | 2 +- .../results/clientpositive/nullscript.q.out | 8 +- .../results/clientpositive/offset_limit.q.out | 276 - .../offset_limit_ppd_optimizer.q.out | 1387 - .../clientpositive/optimize_nullscan.q.out | 2054 -- .../results/clientpositive/orc_analyze.q.out | 1544 - .../results/clientpositive/orc_create.q.out | 782 - .../test/results/clientpositive/orc_llap.q.out | 1153 - .../clientpositive/orc_llap_nonvector.q.out | 1302 - .../results/clientpositive/orc_merge5.q.out | 16 +- .../results/clientpositive/orc_merge6.q.out | 16 +- .../results/clientpositive/orc_merge7.q.out | 605 - .../clientpositive/orc_merge_incompat1.q.out | 8 +- .../clientpositive/orc_merge_incompat2.q.out | 6 +- .../results/clientpositive/orc_ppd_date.q.out | 301 - .../clientpositive/orc_ppd_decimal.q.out | 490 - .../clientpositive/orc_ppd_schema_evol_3a.q.out | 544 - .../clientpositive/orc_ppd_timestamp.q.out | 292 - .../clientpositive/orc_ppd_varchar.q.out | 220 - .../clientpositive/orc_predicate_pushdown.q.out | 1132 - .../clientpositive/orc_split_elimination.q.out | 532 - .../results/clientpositive/order_null.q.out | 210 - .../results/clientpositive/outer_join_ppr.q.out | 4 +- .../clientpositive/parallel_orderby.q.out | 10 +- .../parquet_int96_timestamp.q.out | 535 - .../parquet_predicate_pushdown.q.out | 1276 - .../results/clientpositive/parquet_types.q.out | 379 - .../clientpositive/partition_multilevels.q.out | 1624 - .../clientpositive/partition_pruning.q.out | 396 - .../partition_wise_fileformat2.q.out | 4 +- ql/src/test/results/clientpositive/pcr.q.out | 2 +- ql/src/test/results/clientpositive/pcs.q.out | 6 +- .../results/clientpositive/perf/query1.q.out | 2 +- .../results/clientpositive/perf/query10.q.out | 2 +- .../results/clientpositive/perf/query11.q.out | 2 +- .../results/clientpositive/perf/query13.q.out | 8 +- .../results/clientpositive/perf/query14.q.out | 30 +- .../results/clientpositive/perf/query15.q.out | 4 +- .../results/clientpositive/perf/query16.q.out | 2 +- .../results/clientpositive/perf/query17.q.out | 4 +- .../results/clientpositive/perf/query18.q.out | 6 +- .../results/clientpositive/perf/query19.q.out | 4 +- .../results/clientpositive/perf/query21.q.out | 2 +- .../results/clientpositive/perf/query22.q.out | 2 +- .../results/clientpositive/perf/query23.q.out | 8 +- .../results/clientpositive/perf/query24.q.out | 8 +- .../results/clientpositive/perf/query25.q.out | 8 +- .../results/clientpositive/perf/query26.q.out | 4 +- .../results/clientpositive/perf/query27.q.out | 4 +- .../results/clientpositive/perf/query28.q.out | 12 +- .../results/clientpositive/perf/query29.q.out | 6 +- .../results/clientpositive/perf/query3.q.out | 2 +- .../results/clientpositive/perf/query31.q.out | 4 +- .../results/clientpositive/perf/query33.q.out | 10 +- .../results/clientpositive/perf/query34.q.out | 4 +- .../results/clientpositive/perf/query35.q.out | 2 +- .../results/clientpositive/perf/query36.q.out | 2 +- .../results/clientpositive/perf/query37.q.out | 2 +- .../results/clientpositive/perf/query38.q.out | 8 +- .../results/clientpositive/perf/query39.q.out | 6 +- .../results/clientpositive/perf/query4.q.out | 2 +- .../results/clientpositive/perf/query40.q.out | 2 +- .../results/clientpositive/perf/query42.q.out | 2 +- .../results/clientpositive/perf/query45.q.out | 4 +- .../results/clientpositive/perf/query46.q.out | 4 +- .../results/clientpositive/perf/query47.q.out | 6 +- .../results/clientpositive/perf/query48.q.out | 6 +- .../results/clientpositive/perf/query49.q.out | 14 +- .../results/clientpositive/perf/query5.q.out | 8 +- .../results/clientpositive/perf/query50.q.out | 6 +- .../results/clientpositive/perf/query51.q.out | 2 +- .../results/clientpositive/perf/query52.q.out | 2 +- .../results/clientpositive/perf/query53.q.out | 2 +- .../results/clientpositive/perf/query54.q.out | 8 +- .../results/clientpositive/perf/query55.q.out | 2 +- .../results/clientpositive/perf/query56.q.out | 8 +- .../results/clientpositive/perf/query57.q.out | 6 +- .../results/clientpositive/perf/query58.q.out | 10 +- .../results/clientpositive/perf/query59.q.out | 4 +- .../results/clientpositive/perf/query6.q.out | 6 +- .../results/clientpositive/perf/query60.q.out | 8 +- .../results/clientpositive/perf/query61.q.out | 8 +- .../results/clientpositive/perf/query62.q.out | 164 - .../results/clientpositive/perf/query63.q.out | 2 +- .../results/clientpositive/perf/query64.q.out | 6 +- .../results/clientpositive/perf/query65.q.out | 4 +- .../results/clientpositive/perf/query66.q.out | 4 +- .../results/clientpositive/perf/query67.q.out | 4 +- .../results/clientpositive/perf/query68.q.out | 6 +- .../results/clientpositive/perf/query69.q.out | 2 +- .../results/clientpositive/perf/query7.q.out | 4 +- .../results/clientpositive/perf/query70.q.out | 4 +- .../results/clientpositive/perf/query71.q.out | 6 +- .../results/clientpositive/perf/query72.q.out | 4 +- .../results/clientpositive/perf/query73.q.out | 4 +- .../results/clientpositive/perf/query74.q.out | 8 +- .../results/clientpositive/perf/query75.q.out | 2 +- .../results/clientpositive/perf/query76.q.out | 4 +- .../results/clientpositive/perf/query79.q.out | 4 +- .../results/clientpositive/perf/query80.q.out | 6 +- .../results/clientpositive/perf/query82.q.out | 2 +- .../results/clientpositive/perf/query83.q.out | 4 +- .../results/clientpositive/perf/query85.q.out | 10 +- .../results/clientpositive/perf/query86.q.out | 4 +- .../results/clientpositive/perf/query87.q.out | 12 +- .../results/clientpositive/perf/query89.q.out | 2 +- .../results/clientpositive/perf/query91.q.out | 6 +- .../results/clientpositive/perf/query93.q.out | 2 +- .../results/clientpositive/perf/query94.q.out | 2 +- .../results/clientpositive/perf/query95.q.out | 2 +- .../results/clientpositive/perf/query97.q.out | 2 +- .../results/clientpositive/perf/query99.q.out | 4 +- .../results/clientpositive/pointlookup.q.out | 2 +- .../results/clientpositive/ppd_clusterby.q.out | 4 +- .../test/results/clientpositive/ppd_gby.q.out | 4 +- .../test/results/clientpositive/ppd_gby2.q.out | 4 +- .../results/clientpositive/ppd_gby_join.q.out | 8 +- .../test/results/clientpositive/ppd_join.q.out | 8 +- .../test/results/clientpositive/ppd_join2.q.out | 8 +- .../test/results/clientpositive/ppd_join3.q.out | 16 +- .../test/results/clientpositive/ppd_join4.q.out | 2 +- .../test/results/clientpositive/ppd_join5.q.out | 2 +- .../clientpositive/ppd_multi_insert.q.out | 8 +- .../clientpositive/ppd_outer_join1.q.out | 4 +- .../clientpositive/ppd_outer_join2.q.out | 4 +- .../clientpositive/ppd_outer_join3.q.out | 4 +- .../clientpositive/ppd_outer_join4.q.out | 8 +- .../clientpositive/ppd_repeated_alias.q.out | 52 +- .../results/clientpositive/ppd_udf_case.q.out | 2 +- .../results/clientpositive/ppd_udf_col.q.out | 4 +- .../results/clientpositive/ppd_union_view.q.out | 744 - .../clientpositive/ppr_allchildsarenull.q.out | 2 +- .../results/clientpositive/ppr_pushdown.q.out | 328 - ql/src/test/results/clientpositive/ptf.q.out | 5014 --- .../results/clientpositive/ptf_matchpath.q.out | 42 +- .../results/clientpositive/ptf_streaming.q.out | 2724 -- .../clientpositive/ql_rewrite_gbtoidx.q.out | 2531 -- .../ql_rewrite_gbtoidx_cbo_1.q.out | 2527 -- .../ql_rewrite_gbtoidx_cbo_2.q.out | 3863 -- ql/src/test/results/clientpositive/quote1.q.out | 2 +- .../results/clientpositive/quotedid_smb.q.out | 81 - .../clientpositive/rand_partitionpruner3.q.out | 2 +- .../clientpositive/rcfile_createas1.q.out | 205 - .../results/clientpositive/rcfile_merge1.q.out | 1270 - .../results/clientpositive/rcfile_merge2.q.out | 255 - .../results/clientpositive/rcfile_merge3.q.out | 194 - .../results/clientpositive/rcfile_merge4.q.out | 204 - .../clientpositive/rcfile_null_value.q.out | 2 +- .../clientpositive/reduce_deduplicate.q.out | 360 - .../reduce_deduplicate_extended.q.out | 4976 --- .../results/clientpositive/remote_script.q.out | 49 - .../clientpositive/remove_exprs_stats.q.out | 224 + .../clientpositive/router_join_ppr.q.out | 8 +- .../test/results/clientpositive/sample10.q.out | 473 - .../test/results/clientpositive/sample8.q.out | 4 +- .../clientpositive/schema_evol_stats.q.out | 384 - .../clientpositive/schemeAuthority.q.out | 84 - .../clientpositive/schemeAuthority2.q.out | 53 - .../clientpositive/selectDistinctStar.q.out | 4856 --- .../clientpositive/select_dummy_source.q.out | 22 +- .../clientpositive/select_unquote_and.q.out | 2 +- .../clientpositive/select_unquote_or.q.out | 2 +- .../test/results/clientpositive/semijoin.q.out | 2601 -- .../test/results/clientpositive/semijoin2.q.out | 4 +- .../test/results/clientpositive/semijoin4.q.out | 2 +- .../test/results/clientpositive/semijoin5.q.out | 4 +- .../test/results/clientpositive/skewjoin.q.out | 6 +- .../clientpositive/skewjoin_mapjoin1.q.out | 16 +- .../clientpositive/skewjoin_mapjoin10.q.out | 16 +- .../clientpositive/skewjoin_mapjoin11.q.out | 8 +- .../clientpositive/skewjoin_mapjoin2.q.out | 8 +- .../clientpositive/skewjoin_mapjoin3.q.out | 8 +- .../clientpositive/skewjoin_mapjoin4.q.out | 12 +- .../clientpositive/skewjoin_mapjoin6.q.out | 8 +- .../clientpositive/skewjoin_mapjoin7.q.out | 16 +- .../clientpositive/skewjoin_mapjoin9.q.out | 8 +- .../skewjoin_union_remove_1.q.out | 16 +- .../skewjoin_union_remove_2.q.out | 12 +- .../results/clientpositive/skewjoinopt1.q.out | 16 +- .../results/clientpositive/skewjoinopt10.q.out | 8 +- .../results/clientpositive/skewjoinopt11.q.out | 16 +- .../results/clientpositive/skewjoinopt12.q.out | 8 +- .../results/clientpositive/skewjoinopt14.q.out | 8 +- .../results/clientpositive/skewjoinopt15.q.out | 740 - .../results/clientpositive/skewjoinopt16.q.out | 8 +- .../results/clientpositive/skewjoinopt17.q.out | 16 +- .../results/clientpositive/skewjoinopt19.q.out | 8 +- .../results/clientpositive/skewjoinopt2.q.out | 16 +- .../results/clientpositive/skewjoinopt20.q.out | 8 +- .../results/clientpositive/skewjoinopt21.q.out | 8 +- .../results/clientpositive/skewjoinopt3.q.out | 8 +- .../results/clientpositive/skewjoinopt4.q.out | 16 +- .../results/clientpositive/skewjoinopt5.q.out | 8 +- .../results/clientpositive/skewjoinopt6.q.out | 8 +- .../results/clientpositive/skewjoinopt7.q.out | 12 +- .../results/clientpositive/skewjoinopt8.q.out | 12 +- .../results/clientpositive/skiphf_aggr.q.out | 255 - .../results/clientpositive/smb_mapjoin9.q.out | 4 +- .../results/clientpositive/smb_mapjoin_1.q.out | 10 +- .../results/clientpositive/smb_mapjoin_10.q.out | 2 +- .../results/clientpositive/smb_mapjoin_14.q.out | 1233 - .../results/clientpositive/smb_mapjoin_15.q.out | 766 - .../results/clientpositive/smb_mapjoin_17.q.out | 674 - .../results/clientpositive/smb_mapjoin_18.q.out | 448 - .../results/clientpositive/smb_mapjoin_19.q.out | 250 - .../results/clientpositive/smb_mapjoin_2.q.out | 20 +- .../results/clientpositive/smb_mapjoin_25.q.out | 96 +- .../results/clientpositive/smb_mapjoin_3.q.out | 10 +- .../results/clientpositive/smb_mapjoin_4.q.out | 829 - .../results/clientpositive/smb_mapjoin_5.q.out | 829 - .../results/clientpositive/smb_mapjoin_6.q.out | 2719 -- .../results/clientpositive/smb_mapjoin_8.q.out | 468 - .../clientpositive/sort_merge_join_desc_2.q.out | 2 +- .../clientpositive/sort_merge_join_desc_3.q.out | 2 +- .../clientpositive/sort_merge_join_desc_4.q.out | 4 +- .../clientpositive/sort_merge_join_desc_8.q.out | 4 +- .../clientpositive/spark/auto_join20.q.out | 2 +- .../clientpositive/spark/auto_join25.q.out | 116 - .../clientpositive/spark/auto_join28.q.out | 2 +- .../clientpositive/spark/auto_join29.q.out | 14 +- .../clientpositive/spark/auto_join32.q.out | 580 - .../clientpositive/spark/auto_join4.q.out | 4 +- .../clientpositive/spark/auto_join5.q.out | 2 +- .../clientpositive/spark/auto_join6.q.out | 4 +- .../clientpositive/spark/auto_join7.q.out | 6 +- .../clientpositive/spark/auto_join8.q.out | 4 +- .../spark/auto_join_reordering_values.q.out | 2 +- .../spark/auto_sortmerge_join_11.q.out | 1548 - .../spark/auto_sortmerge_join_2.q.out | 644 - .../spark/auto_sortmerge_join_5.q.out | 30 +- .../spark/bucket_map_join_tez1.q.out | 4265 ++- .../spark/bucket_map_join_tez2.q.out | 1330 +- .../clientpositive/spark/bucketmapjoin1.q.out | 16 +- .../clientpositive/spark/bucketmapjoin4.q.out | 44 +- .../clientpositive/spark/bucketmapjoin5.q.out | 8 +- .../spark/bucketmapjoin_negative.q.out | 4 +- .../spark/bucketmapjoin_negative2.q.out | 4 +- .../spark/bucketmapjoin_negative3.q.out | 126 +- .../spark/bucketsortoptimize_insert_7.q.out | 4 +- .../clientpositive/spark/char_join1.q.out | 153 - .../spark/constprog_semijoin.q.out | 2 +- .../results/clientpositive/spark/count.q.out | 130 +- .../spark/dynamic_rdd_cache.q.out | 8 +- .../spark/filter_join_breaktask.q.out | 48 +- .../spark/gen_udf_example_add10.q.out | 12 +- .../clientpositive/spark/groupby10.q.out | 72 +- .../spark/groupby_multi_single_reducer3.q.out | 20 +- .../clientpositive/spark/groupby_position.q.out | 2 +- .../spark/identity_project_remove_skip.q.out | 2 +- .../spark/index_auto_self_join.q.out | 8 +- .../spark/infer_bucket_sort_convert_join.q.out | 128 - .../results/clientpositive/spark/input12.q.out | 2 +- .../results/clientpositive/spark/input13.q.out | 4 +- .../clientpositive/spark/input_part2.q.out | 4 +- .../results/clientpositive/spark/insert1.q.out | 420 - .../results/clientpositive/spark/join19.q.out | 6 +- .../results/clientpositive/spark/join20.q.out | 2 +- .../clientpositive/spark/join32_lessSize.q.out | 2 +- .../results/clientpositive/spark/join4.q.out | 4 +- .../results/clientpositive/spark/join40.q.out | 3846 -- .../results/clientpositive/spark/join5.q.out | 2 +- .../results/clientpositive/spark/join6.q.out | 4 +- .../results/clientpositive/spark/join7.q.out | 6 +- .../results/clientpositive/spark/join8.q.out | 4 +- .../clientpositive/spark/join_empty.q.out | 56 - .../clientpositive/spark/join_filters.q.out | 1364 - .../clientpositive/spark/join_hive_626.q.out | 2 +- .../clientpositive/spark/join_nulls.q.out | 652 - .../clientpositive/spark/join_nullsafe.q.out | 116 +- .../clientpositive/spark/join_reorder2.q.out | 4 +- .../clientpositive/spark/join_reorder3.q.out | 4 +- .../clientpositive/spark/join_star.q.out | 140 +- .../clientpositive/spark/load_dyn_part13.q.out | 2 +- .../clientpositive/spark/louter_join_ppr.q.out | 8 +- .../spark/mapjoin_filter_on_outerjoin.q.out | 4 +- .../clientpositive/spark/mapjoin_hook.q.out | 61 - .../clientpositive/spark/mapjoin_mapjoin.q.out | 4 +- .../clientpositive/spark/multi_insert.q.out | 32 +- .../clientpositive/spark/multi_insert_gby.q.out | 2 +- ...i_insert_move_tasks_share_dependencies.q.out | 56 +- .../spark/multi_insert_union_src.q.out | 372 - .../spark/multi_insert_with_join2.q.out | 1006 - .../clientpositive/spark/orc_analyze.q.out | 1038 - .../clientpositive/spark/orc_merge5.q.out | 16 +- .../clientpositive/spark/orc_merge6.q.out | 16 +- .../clientpositive/spark/orc_merge7.q.out | 12 +- .../spark/orc_merge_incompat1.q.out | 8 +- .../spark/orc_merge_incompat2.q.out | 6 +- .../clientpositive/spark/outer_join_ppr.q.out | 4 +- .../clientpositive/spark/parallel_orderby.q.out | 10 +- .../test/results/clientpositive/spark/pcr.q.out | 2 +- .../clientpositive/spark/ppd_gby_join.q.out | 8 +- .../results/clientpositive/spark/ppd_join.q.out | 8 +- .../clientpositive/spark/ppd_join2.q.out | 8 +- .../clientpositive/spark/ppd_join3.q.out | 16 +- .../clientpositive/spark/ppd_join4.q.out | 137 - .../clientpositive/spark/ppd_join5.q.out | 2 +- .../clientpositive/spark/ppd_multi_insert.q.out | 8 +- .../clientpositive/spark/ppd_outer_join1.q.out | 4 +- .../clientpositive/spark/ppd_outer_join2.q.out | 4 +- .../clientpositive/spark/ppd_outer_join3.q.out | 4 +- .../clientpositive/spark/ppd_outer_join4.q.out | 8 +- .../clientpositive/spark/ptf_matchpath.q.out | 42 +- .../spark/ql_rewrite_gbtoidx.q.out | 2645 -- .../spark/ql_rewrite_gbtoidx_cbo_1.q.out | 2641 -- .../clientpositive/spark/router_join_ppr.q.out | 8 +- .../results/clientpositive/spark/sample8.q.out | 4 +- .../results/clientpositive/spark/skewjoin.q.out | 6 +- .../spark/skewjoin_union_remove_1.q.out | 16 +- .../spark/skewjoin_union_remove_2.q.out | 12 +- .../clientpositive/spark/skewjoinopt1.q.out | 16 +- .../clientpositive/spark/skewjoinopt10.q.out | 4 +- .../clientpositive/spark/skewjoinopt11.q.out | 4 +- .../clientpositive/spark/skewjoinopt12.q.out | 8 +- .../clientpositive/spark/skewjoinopt14.q.out | 6 +- .../clientpositive/spark/skewjoinopt15.q.out | 16 +- .../clientpositive/spark/skewjoinopt16.q.out | 8 +- .../clientpositive/spark/skewjoinopt17.q.out | 12 +- .../clientpositive/spark/skewjoinopt19.q.out | 4 +- .../clientpositive/spark/skewjoinopt2.q.out | 16 +- .../clientpositive/spark/skewjoinopt20.q.out | 4 +- .../clientpositive/spark/skewjoinopt3.q.out | 8 +- .../clientpositive/spark/skewjoinopt4.q.out | 8 +- .../clientpositive/spark/skewjoinopt5.q.out | 8 +- .../clientpositive/spark/skewjoinopt6.q.out | 8 +- .../clientpositive/spark/skewjoinopt7.q.out | 12 +- .../clientpositive/spark/skewjoinopt8.q.out | 12 +- .../clientpositive/spark/smb_mapjoin9.q.out | 402 - .../clientpositive/spark/smb_mapjoin_1.q.out | 58 +- .../clientpositive/spark/smb_mapjoin_10.q.out | 2 +- .../clientpositive/spark/smb_mapjoin_15.q.out | 4 +- .../clientpositive/spark/smb_mapjoin_2.q.out | 68 +- .../clientpositive/spark/smb_mapjoin_25.q.out | 80 +- .../clientpositive/spark/smb_mapjoin_3.q.out | 58 +- .../clientpositive/spark/smb_mapjoin_4.q.out | 224 +- .../clientpositive/spark/smb_mapjoin_5.q.out | 224 +- .../spark/sort_merge_join_desc_1.q.out | 127 - .../spark/sort_merge_join_desc_2.q.out | 133 - .../spark/sort_merge_join_desc_3.q.out | 133 - .../spark/sort_merge_join_desc_4.q.out | 155 - .../spark/sort_merge_join_desc_5.q.out | 262 - .../spark/sort_merge_join_desc_6.q.out | 355 - .../spark/sort_merge_join_desc_7.q.out | 479 - .../spark/sort_merge_join_desc_8.q.out | 283 - .../spark/spark_combine_equivalent_work_2.q.out | 232 + .../spark/spark_dynamic_partition_pruning.q.out | 14 +- .../spark_dynamic_partition_pruning_3.q.out | 2 +- .../spark/spark_explainuser_1.q.out | 138 +- .../spark/spark_use_file_size_for_mapjoin.q.out | 257 - ...k_vectorized_dynamic_partition_pruning.q.out | 14 +- .../clientpositive/spark/subquery_in.q.out | 4 +- .../clientpositive/spark/transform1.q.out | 138 - .../clientpositive/spark/transform_ppr1.q.out | 2 +- .../clientpositive/spark/union_view.q.out | 22 +- .../spark/vector_mapjoin_reduce.q.out | 2 +- .../spark/vector_tablesample_rows.q.out | 424 - .../clientpositive/spark/vectorization_0.q.out | 8 +- .../clientpositive/spark/vectorization_1.q.out | 2 +- .../clientpositive/spark/vectorization_10.q.out | 2 +- .../clientpositive/spark/vectorization_12.q.out | 2 +- .../clientpositive/spark/vectorization_13.q.out | 4 +- .../clientpositive/spark/vectorization_14.q.out | 2 +- .../clientpositive/spark/vectorization_15.q.out | 2 +- .../clientpositive/spark/vectorization_16.q.out | 2 +- .../clientpositive/spark/vectorization_17.q.out | 2 +- .../clientpositive/spark/vectorization_2.q.out | 2 +- .../clientpositive/spark/vectorization_3.q.out | 2 +- .../clientpositive/spark/vectorization_4.q.out | 2 +- .../clientpositive/spark/vectorization_5.q.out | 2 +- .../clientpositive/spark/vectorization_6.q.out | 2 +- .../clientpositive/spark/vectorization_7.q.out | 480 - .../clientpositive/spark/vectorization_8.q.out | 454 - .../clientpositive/spark/vectorization_9.q.out | 2 +- .../spark/vectorization_decimal_date.q.out | 2 +- .../spark/vectorization_div0.q.out | 4 +- .../spark/vectorization_short_regress.q.out | 20 +- .../spark/vectorized_bucketmapjoin1.q.out | 375 - .../clientpositive/spark/vectorized_case.q.out | 4 +- .../spark/vectorized_nested_mapjoin.q.out | 2 +- .../spark/vectorized_string_funcs.q.out | 2 +- .../special_character_in_tabnames_1.q.out | 19607 ----------- .../special_character_in_tabnames_2.q.out | 6 +- .../test/results/clientpositive/stats11.q.out | 1291 - .../results/clientpositive/subquery_in.q.out | 956 - .../clientpositive/subquery_in_having.q.out | 312 +- .../results/clientpositive/subquery_notin.q.out | 1620 - .../results/clientpositive/subquery_views.q.out | 595 - .../table_access_keys_stats.q.out | 606 - .../clientpositive/table_nonprintable.q.out | 72 - .../results/clientpositive/temp_table.q.out | 634 - .../clientpositive/temp_table_external.q.out | 34 - .../clientpositive/tez/explainanalyze_2.q.out | 58 +- .../clientpositive/tez/explainanalyze_3.q.out | 6 +- .../clientpositive/tez/explainanalyze_4.q.out | 12 +- .../clientpositive/tez/explainanalyze_5.q.out | 8 +- .../clientpositive/tez/explainuser_3.q.out | 6 +- .../tez/hybridgrace_hashjoin_2.q.out | 8 +- .../clientpositive/tez/stats_filemetadata.q.out | 54 - .../clientpositive/tez/vector_acid3.q.out | 29 - .../tez/vector_adaptor_usage_mode.q.out | 706 - .../clientpositive/tez/vector_aggregate_9.q.out | 201 - .../tez/vector_aggregate_without_gby.q.out | 70 - .../tez/vector_auto_smb_mapjoin_14.q.out | 2314 -- .../tez/vector_between_columns.q.out | 365 - .../clientpositive/tez/vector_between_in.q.out | 1691 - .../tez/vector_binary_join_groupby.q.out | 586 - .../clientpositive/tez/vector_bround.q.out | 67 - .../clientpositive/tez/vector_bucket.q.out | 125 - .../tez/vector_cast_constant.q.out | 262 - .../clientpositive/tez/vector_char_2.q.out | 430 - .../clientpositive/tez/vector_char_4.q.out | 198 - .../clientpositive/tez/vector_char_cast.q.out | 33 - .../tez/vector_char_mapjoin1.q.out | 678 - .../clientpositive/tez/vector_char_simple.q.out | 311 - .../clientpositive/tez/vector_coalesce.q.out | 601 - .../clientpositive/tez/vector_coalesce_2.q.out | 393 - .../clientpositive/tez/vectorization_div0.q.out | 4 +- .../tez_join_result_complex.q.out | 1337 - .../results/clientpositive/timestamptz_1.q.out | 2 +- .../results/clientpositive/transform_ppr1.q.out | 2 +- .../results/clientpositive/uber_reduce.q.out | 31 - .../clientpositive/udaf_collect_set_2.q.out | 742 - .../udaf_percentile_approx_23.q.out | 8 +- .../results/clientpositive/udf_mask_hash.q.out | 6 +- .../clientpositive/udf_trunc_number.q.out | 20 +- .../results/clientpositive/udtf_stack.q.out | 18 +- .../clientpositive/unionDistinct_1.q.out | 16654 --------- .../clientpositive/unionDistinct_2.q.out | 551 - .../clientpositive/union_fast_stats.q.out | 646 - .../clientpositive/union_remove_26.q.out | 823 - .../clientpositive/union_top_level.q.out | 1396 - .../results/clientpositive/union_view.q.out | 16 +- .../results/clientpositive/varchar_udf1.q.out | 453 - .../vector_adaptor_usage_mode.q.out | 931 - .../vector_auto_smb_mapjoin_14.q.out | 1805 - .../clientpositive/vector_between_in.q.out | 943 - .../clientpositive/vector_complex_all.q.out | 229 - .../clientpositive/vector_count_distinct.q.out | 1356 - .../results/clientpositive/vector_date_1.q.out | 4 +- .../clientpositive/vector_decimal_2.q.out | 1458 - .../clientpositive/vector_decimal_cast.q.out | 2 +- .../vector_decimal_expressions.q.out | 2 +- .../clientpositive/vector_decimal_udf.q.out | 2638 -- .../clientpositive/vector_inner_join.q.out | 851 - .../clientpositive/vector_interval_2.q.out | 1550 - .../vector_interval_mapjoin.q.out | 4 +- .../results/clientpositive/vector_join30.q.out | 2220 -- .../clientpositive/vector_join_filters.q.out | 224 - .../clientpositive/vector_join_nulls.q.out | 197 - .../vector_leftsemi_mapjoin.q.out | 13610 -------- .../clientpositive/vector_mapjoin_reduce.q.out | 2 +- .../vector_mr_diff_schema_alias.q.out | 2 +- .../clientpositive/vector_multi_insert.q.out | 2 +- .../clientpositive/vector_nullsafe_join.q.out | 1210 - .../vector_number_compare_projection.q.out | 716 - .../clientpositive/vector_outer_join5.q.out | 1308 - .../vector_partition_diff_num_cols.q.out | 579 - .../vector_partitioned_date_time.q.out | 2048 -- .../clientpositive/vector_ptf_part_simple.q.out | 2895 -- .../vector_tablesample_rows.q.out | 2 +- .../results/clientpositive/vector_udf1.q.out | 1641 - .../vector_windowing_expressions.q.out | 74 +- .../vector_windowing_multipartitioning.q.out | 132 +- .../vector_windowing_order_null.q.out | 112 +- .../vector_windowing_range_multiorder.q.out | 152 +- .../clientpositive/vector_windowing_rank.q.out | 152 +- .../vector_windowing_streaming.q.out | 16 +- .../vector_windowing_windowspec.q.out | 154 +- .../clientpositive/vectorization_0.q.out | 30981 ----------------- .../clientpositive/vectorization_1.q.out | 2 +- .../clientpositive/vectorization_10.q.out | 2 +- .../clientpositive/vectorization_12.q.out | 2 +- .../clientpositive/vectorization_13.q.out | 4 +- .../clientpositive/vectorization_14.q.out | 2 +- .../clientpositive/vectorization_15.q.out | 2 +- .../clientpositive/vectorization_16.q.out | 2 +- .../clientpositive/vectorization_17.q.out | 2 +- .../clientpositive/vectorization_2.q.out | 2 +- .../clientpositive/vectorization_3.q.out | 2 +- .../clientpositive/vectorization_4.q.out | 2 +- .../clientpositive/vectorization_5.q.out | 2 +- .../clientpositive/vectorization_6.q.out | 2 +- .../clientpositive/vectorization_7.q.out | 4 +- .../clientpositive/vectorization_8.q.out | 4 +- .../clientpositive/vectorization_9.q.out | 2 +- .../vectorization_decimal_date.q.out | 2 +- .../clientpositive/vectorization_div0.q.out | 4 +- .../vectorization_short_regress.q.out | 3336 -- .../clientpositive/vectorized_case.q.out | 4 +- .../clientpositive/vectorized_context.q.out | 2 +- .../clientpositive/vectorized_mapjoin2.q.out | 14 +- .../vectorized_nested_mapjoin.q.out | 129 - .../clientpositive/vectorized_parquet.q.out | 333 - .../results/clientpositive/vectorized_ptf.q.out | 8440 ----- .../vectorized_string_funcs.q.out | 2 +- .../test/results/clientpositive/view_cbo.q.out | 2 +- .../test/results/clientpositive/windowing.q.out | 2439 -- .../clientpositive/windowing_windowspec2.q.out | 3084 -- .../ConstantObjectInspector.java | 5 + .../objectinspector/ListObjectInspector.java | 5 + .../objectinspector/MapObjectInspector.java | 5 + .../serde2/objectinspector/ObjectInspector.java | 5 + .../serde2/objectinspector/StructField.java | 5 + .../objectinspector/StructObjectInspector.java | 5 + .../serde2/objectinspector/UnionObject.java | 5 + .../objectinspector/UnionObjectInspector.java | 5 + .../primitive/BinaryObjectInspector.java | 5 + .../primitive/BooleanObjectInspector.java | 4 + .../primitive/ByteObjectInspector.java | 4 + .../primitive/DateObjectInspector.java | 4 + .../primitive/DoubleObjectInspector.java | 4 + .../primitive/FloatObjectInspector.java | 4 + .../primitive/HiveCharObjectInspector.java | 4 + .../primitive/HiveDecimalObjectInspector.java | 4 + .../HiveIntervalDayTimeObjectInspector.java | 4 + .../HiveIntervalYearMonthObjectInspector.java | 4 + .../primitive/HiveVarcharObjectInspector.java | 4 + .../primitive/IntObjectInspector.java | 4 + .../primitive/LongObjectInspector.java | 4 + .../PrimitiveObjectInspectorUtils.java | 4 + .../primitive/ShortObjectInspector.java | 4 + .../primitive/StringObjectInspector.java | 4 + .../primitive/TimestampObjectInspector.java | 4 + .../primitive/VoidObjectInspector.java | 4 + .../hive/serde2/typeinfo/BaseCharTypeInfo.java | 5 + .../hive/serde2/typeinfo/ListTypeInfo.java | 4 + .../hive/serde2/typeinfo/MapTypeInfo.java | 4 + .../hive/serde2/typeinfo/PrimitiveTypeInfo.java | 4 + .../hive/serde2/typeinfo/StructTypeInfo.java | 4 + .../hadoop/hive/serde2/typeinfo/TypeInfo.java | 4 + .../hive/serde2/typeinfo/UnionTypeInfo.java | 4 + service-rpc/if/TCLIService.thrift | 10 + .../src/gen/thrift/gen-cpp/TCLIService.cpp | 383 + .../src/gen/thrift/gen-cpp/TCLIService.h | 126 + .../gen-cpp/TCLIService_server.skeleton.cpp | 5 + .../gen/thrift/gen-cpp/TCLIService_types.cpp | 172 + .../src/gen/thrift/gen-cpp/TCLIService_types.h | 84 + .../hive/service/rpc/thrift/TCLIService.java | 858 + .../hive/service/rpc/thrift/TGetQueryIdReq.java | 394 + .../service/rpc/thrift/TGetQueryIdResp.java | 389 + .../src/gen/thrift/gen-php/TCLIService.php | 216 + service-rpc/src/gen/thrift/gen-php/Types.php | 155 + .../gen-py/TCLIService/TCLIService-remote | 7 + .../thrift/gen-py/TCLIService/TCLIService.py | 189 + .../src/gen/thrift/gen-py/TCLIService/ttypes.py | 135 + .../src/gen/thrift/gen-rb/t_c_l_i_service.rb | 54 + .../gen/thrift/gen-rb/t_c_l_i_service_types.rb | 34 + service/pom.xml | 7 + .../org/apache/hive/service/cli/CLIService.java | 10 + .../service/cli/EmbeddedCLIServiceClient.java | 6 + .../apache/hive/service/cli/ICLIService.java | 3 + .../service/cli/operation/OperationManager.java | 25 +- .../service/cli/session/HiveSessionImpl.java | 9 + .../service/cli/session/SessionManager.java | 7 + .../thrift/RetryingThriftCLIServiceClient.java | 6 + .../service/cli/thrift/ThriftCLIService.java | 11 + .../cli/thrift/ThriftCLIServiceClient.java | 11 + .../apache/hive/service/server/HiveServer2.java | 24 +- .../hive/service/server/KillQueryImpl.java | 53 + .../cli/session/TestSessionManagerMetrics.java | 3 +- .../cli/thrift/ThriftCLIServiceTest.java | 4 +- .../thrift/ThriftCliServiceTestWithCookie.java | 4 +- .../hive/service/server/TestHS2HttpServer.java | 4 +- storage-api/pom.xml | 2 +- 1205 files changed, 24074 insertions(+), 443973 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/379d9bab/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/379d9bab/itests/src/test/resources/testconfiguration.properties ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/379d9bab/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/379d9bab/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java ---------------------------------------------------------------------- diff --cc metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java index 1672222,b51446d..0442e21 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java @@@ -1948,61 -1814,6 +1817,59 @@@ public class MetaStoreUtils return cols; } + // TODO The following two utility methods can be moved to AcidUtils once no class in metastore is relying on them, + // right now ObjectStore.getAllMmTablesForCleanup is calling these method + /** + * Checks if a table is an ACID table that only supports INSERT, but not UPDATE/DELETE + * @param params table properties + * @return true if table is an INSERT_ONLY table, false otherwise + */ + public static boolean isInsertOnlyTable(Map<String, String> params) { + return isInsertOnlyTable(params, false); + } + ++ // TODO: CTAS for MM may currently be broken. It used to work. See the old code and why isCtas isn't used? + public static boolean isInsertOnlyTable(Map<String, String> params, boolean isCtas) { + String transactionalProp = params.get(hive_metastoreConstants.TABLE_TRANSACTIONAL_PROPERTIES); + return (transactionalProp != null && "insert_only".equalsIgnoreCase(transactionalProp)); + } + + public static boolean isInsertOnlyTable(Properties params) { - // TODO# redirect for now - fix before merge - HashMap<String, String> testMap = new HashMap<String, String>(); - for (String n : params.stringPropertyNames()) { - testMap.put(n, params.getProperty(n)); - } - return isInsertOnlyTable(testMap); ++ String transactionalProp = params.getProperty( ++ hive_metastoreConstants.TABLE_TRANSACTIONAL_PROPERTIES); ++ return (transactionalProp != null && "insert_only".equalsIgnoreCase(transactionalProp)); + } + + /** The method for altering table props; may set the table to MM, non-MM, or not affect MM. */ + public static Boolean isToInsertOnlyTable(Map<String, String> props) { + // TODO: Setting these separately is a very hairy issue in certain combinations, since we + // cannot decide what type of table this becomes without taking both into account, and + // in many cases the conversion might be illegal. + // The only thing we allow is tx = true w/o tx-props, for backward compat. + String transactional = props.get(hive_metastoreConstants.TABLE_IS_TRANSACTIONAL); + String transactionalProp = props.get(hive_metastoreConstants.TABLE_TRANSACTIONAL_PROPERTIES); + if (transactional == null && transactionalProp == null) return null; // Not affected. + boolean isSetToTxn = "true".equalsIgnoreCase(transactional); + if (transactionalProp == null) { + if (isSetToTxn) return false; // Assume the full ACID table. + throw new RuntimeException("Cannot change '" + hive_metastoreConstants.TABLE_IS_TRANSACTIONAL + + "' without '" + hive_metastoreConstants.TABLE_TRANSACTIONAL_PROPERTIES + "'"); + } + if (!"insert_only".equalsIgnoreCase(transactionalProp)) return false; // Not MM. + if (!isSetToTxn) { + throw new RuntimeException("Cannot set '" + + hive_metastoreConstants.TABLE_TRANSACTIONAL_PROPERTIES + "' to 'insert_only' without " + + "setting '" + hive_metastoreConstants.TABLE_IS_TRANSACTIONAL + "' to 'true'"); + } + return true; + } + + public static boolean isRemovedInsertOnlyTable(Set<String> removedSet) { + boolean hasTxn = removedSet.contains(hive_metastoreConstants.TABLE_IS_TRANSACTIONAL), + hasProps = removedSet.contains(hive_metastoreConstants.TABLE_TRANSACTIONAL_PROPERTIES); + return hasTxn || hasProps; + } + // given a list of partStats, this function will give you an aggr stats public static List<ColumnStatisticsObj> aggrPartitionStats(List<ColumnStatistics> partStats, String dbName, String tableName, List<String> partNames, List<String> colNames, http://git-wip-us.apache.org/repos/asf/hive/blob/379d9bab/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/379d9bab/ql/src/java/org/apache/hadoop/hive/ql/Driver.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/379d9bab/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java ---------------------------------------------------------------------- diff --cc ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java index 5dc0cea,2cf5bfd..8414a78 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java @@@ -182,11 -179,10 +182,12 @@@ import org.apache.hadoop.hive.ql.plan.F import org.apache.hadoop.hive.ql.plan.GrantDesc; import org.apache.hadoop.hive.ql.plan.GrantRevokeRoleDDL; import org.apache.hadoop.hive.ql.plan.InsertTableDesc; + import org.apache.hadoop.hive.ql.plan.KillQueryDesc; import org.apache.hadoop.hive.ql.plan.ListBucketingCtx; +import org.apache.hadoop.hive.ql.plan.LoadMultiFilesDesc; import org.apache.hadoop.hive.ql.plan.LockDatabaseDesc; import org.apache.hadoop.hive.ql.plan.LockTableDesc; +import org.apache.hadoop.hive.ql.plan.MoveWork; import org.apache.hadoop.hive.ql.plan.MsckDesc; import org.apache.hadoop.hive.ql.plan.OperatorDesc; import org.apache.hadoop.hive.ql.plan.OrcFileMergeDesc; @@@ -4067,215 -4089,7 +4086,215 @@@ public class DDLTask extends Task<DDLWo throw new HiveException(ErrorMsg.UNSUPPORTED_ALTER_TBL_OP, alterTbl.getOp().toString()); } - return 0; + return null; + } + + private List<Task<?>> alterTableDropProps(AlterTableDesc alterTbl, Table tbl, + Partition part, EnvironmentContext environmentContext) throws HiveException { + if (StatsSetupConst.USER.equals(environmentContext.getProperties() + .get(StatsSetupConst.STATS_GENERATED))) { + // drop a stats parameter, which triggers recompute stats update automatically + environmentContext.getProperties().remove(StatsSetupConst.DO_NOT_UPDATE_STATS); + } + + List<Task<?>> result = null; + if (part == null) { + Set<String> removedSet = alterTbl.getProps().keySet(); + boolean isFromMmTable = MetaStoreUtils.isInsertOnlyTable(tbl.getParameters()), + isRemoved = MetaStoreUtils.isRemovedInsertOnlyTable(removedSet); + if (isFromMmTable && isRemoved) { + result = generateRemoveMmTasks(tbl); + } + } + Iterator<String> keyItr = alterTbl.getProps().keySet().iterator(); + while (keyItr.hasNext()) { + if (part != null) { + part.getTPartition().getParameters().remove(keyItr.next()); + } else { + tbl.getTTable().getParameters().remove(keyItr.next()); + } + } + return result; + } + + private List<Task<?>> generateRemoveMmTasks(Table tbl) throws HiveException { + // To avoid confusion from nested MM directories when table is converted back and forth, we + // want to rename mm_ dirs to remove the prefix; however, given the unpredictable nested + // directory handling in Hive/MR, we will instead move all the files into the root directory. + // We will also delete any directories that are not committed. + // Note that this relies on locks. Note also that we only do the renames AFTER the metastore + // operation commits. Deleting uncommitted things is safe, but moving stuff before we convert + // could cause data loss. + List<Path> allMmDirs = new ArrayList<>(); + if (tbl.isStoredAsSubDirectories()) { + // TODO: support this? we only bail because it's a PITA and hardly anyone seems to care. + throw new HiveException("Converting list bucketed tables stored as subdirectories " + + " to and from MM is not supported"); + } + List<String> bucketCols = tbl.getBucketCols(); + if (bucketCols != null && !bucketCols.isEmpty() + && HiveConf.getBoolVar(conf, ConfVars.HIVE_STRICT_CHECKS_BUCKETING)) { + throw new HiveException("Converting bucketed tables from MM is not supported by default; " + + "copying files from multiple MM directories may potentially break the buckets. You " + + "can set " + ConfVars.HIVE_STRICT_CHECKS_BUCKETING.varname + + " to false for this query if you want to force the conversion."); + } + Hive db = getHive(); + String value = conf.get(ValidTxnList.VALID_TXNS_KEY); + ValidTxnList validTxnList = value == null ? new ValidReadTxnList() : new ValidReadTxnList(value); + if (tbl.getPartitionKeys().size() > 0) { + PartitionIterable parts = new PartitionIterable(db, tbl, null, + HiveConf.getIntVar(conf, ConfVars.METASTORE_BATCH_RETRIEVE_MAX)); + Iterator<Partition> partIter = parts.iterator(); + while (partIter.hasNext()) { + Partition part = partIter.next(); + checkMmLb(part); + handleRemoveMm(part.getDataLocation(), validTxnList, allMmDirs); + } + } else { + checkMmLb(tbl); + handleRemoveMm(tbl.getDataLocation(), validTxnList, allMmDirs); + } + List<Path> targetPaths = new ArrayList<>(allMmDirs.size()); + List<String> targetPrefix = new ArrayList<>(allMmDirs.size()); + int prefixLen = JavaUtils.DELTA_PREFIX.length(); + for (int i = 0; i < allMmDirs.size(); ++i) { + Path src = allMmDirs.get(i); + Path tgt = src.getParent(); + String prefix = src.getName().substring(prefixLen + 1) + "_"; + Utilities.LOG14535.info("Will move " + src + " to " + tgt + " (prefix " + prefix + ")"); + targetPaths.add(tgt); + targetPrefix.add(prefix); + } + // Don't set inputs and outputs - the locks have already been taken so it's pointless. - MoveWork mw = new MoveWork(null, null, null, null, false); ++ MoveWork mw = new MoveWork(null, null, null, null, false, SessionState.get().getLineageState()); + mw.setMultiFilesDesc(new LoadMultiFilesDesc( + allMmDirs, targetPaths, targetPrefix, true, null, null)); + return Lists.<Task<?>>newArrayList(TaskFactory.get(mw, conf)); + } + + private void checkMmLb(Table tbl) throws HiveException { + if (!tbl.isStoredAsSubDirectories()) return; + // TODO: support this? + throw new HiveException("Converting list bucketed tables stored as subdirectories " + + " to and from MM is not supported"); + } + + private void checkMmLb(Partition part) throws HiveException { + if (!part.isStoredAsSubDirectories()) return; + // TODO: support this? + throw new HiveException("Converting list bucketed tables stored as subdirectories " + + " to and from MM is not supported. Please create a table in the desired format."); + } + + private void handleRemoveMm( + Path path, ValidTxnList validTxnList, List<Path> result) throws HiveException { + // Note: doesn't take LB into account; that is not presently supported here (throws above). + try { + FileSystem fs = path.getFileSystem(conf); + for (FileStatus file : fs.listStatus(path)) { + Path childPath = file.getPath(); + if (!file.isDirectory()) { + ensureDelete(fs, childPath, "a non-directory file"); + continue; + } + Long writeId = JavaUtils.extractTxnId(childPath); + if (writeId == null) { + ensureDelete(fs, childPath, "an unknown directory"); + } else if (!validTxnList.isTxnValid(writeId)) { + // Assume no concurrent active writes - we rely on locks here. We could check and fail. + ensureDelete(fs, childPath, "an uncommitted directory"); + } else { + result.add(childPath); + } + } + } catch (IOException ex) { + throw new HiveException(ex); + } + } + + private static void ensureDelete(FileSystem fs, Path path, String what) throws IOException { + Utilities.LOG14535.info("Deleting " + what + " " + path); + try { + if (!fs.delete(path, true)) throw new IOException("delete returned false"); + } catch (Exception ex) { + String error = "Couldn't delete " + path + "; cannot remove MM setting from the table"; + LOG.error(error, ex); + throw (ex instanceof IOException) ? (IOException)ex : new IOException(ex); + } + } + + private List<Task<?>> generateAddMmTasks(Table tbl) throws HiveException { + // We will move all the files in the table/partition directories into the first MM + // directory, then commit the first write ID. + List<Path> srcs = new ArrayList<>(), tgts = new ArrayList<>(); + long mmWriteId = 0; + try { + HiveTxnManager txnManager = SessionState.get().getTxnMgr(); + if (txnManager.isTxnOpen()) { + mmWriteId = txnManager.getCurrentTxnId(); + } else { + mmWriteId = txnManager.openTxn(new Context(conf), conf.getUser()); + txnManager.commitTxn(); + } + } catch (Exception e) { + String errorMessage = "FAILED: Error in acquiring locks: " + e.getMessage(); + console.printError(errorMessage, "\n" + + org.apache.hadoop.util.StringUtils.stringifyException(e)); + } + int stmtId = 0; + String mmDir = AcidUtils.deltaSubdir(mmWriteId, mmWriteId, stmtId); + Hive db = getHive(); + if (tbl.getPartitionKeys().size() > 0) { + PartitionIterable parts = new PartitionIterable(db, tbl, null, + HiveConf.getIntVar(conf, ConfVars.METASTORE_BATCH_RETRIEVE_MAX)); + Iterator<Partition> partIter = parts.iterator(); + while (partIter.hasNext()) { + Partition part = partIter.next(); + checkMmLb(part); + Path src = part.getDataLocation(), tgt = new Path(src, mmDir); + srcs.add(src); + tgts.add(tgt); + Utilities.LOG14535.info("Will move " + src + " to " + tgt); + } + } else { + checkMmLb(tbl); + Path src = tbl.getDataLocation(), tgt = new Path(src, mmDir); + srcs.add(src); + tgts.add(tgt); + Utilities.LOG14535.info("Will move " + src + " to " + tgt); + } + // Don't set inputs and outputs - the locks have already been taken so it's pointless. - MoveWork mw = new MoveWork(null, null, null, null, false); ++ MoveWork mw = new MoveWork(null, null, null, null, false, SessionState.get().getLineageState()); + mw.setMultiFilesDesc(new LoadMultiFilesDesc(srcs, tgts, true, null, null)); + ImportCommitWork icw = new ImportCommitWork(tbl.getDbName(), tbl.getTableName(), mmWriteId, stmtId); + Task<?> mv = TaskFactory.get(mw, conf), ic = TaskFactory.get(icw, conf); + mv.addDependentTask(ic); + return Lists.<Task<?>>newArrayList(mv); + } + + private List<Task<?>> alterTableAddProps(AlterTableDesc alterTbl, Table tbl, + Partition part, EnvironmentContext environmentContext) throws HiveException { + if (StatsSetupConst.USER.equals(environmentContext.getProperties() + .get(StatsSetupConst.STATS_GENERATED))) { + environmentContext.getProperties().remove(StatsSetupConst.DO_NOT_UPDATE_STATS); + } + List<Task<?>> result = null; + if (part != null) { + part.getTPartition().getParameters().putAll(alterTbl.getProps()); + } else { + boolean isFromMmTable = MetaStoreUtils.isInsertOnlyTable(tbl.getParameters()); + Boolean isToMmTable = MetaStoreUtils.isToInsertOnlyTable(alterTbl.getProps()); + if (isToMmTable != null) { + if (!isFromMmTable && isToMmTable) { + result = generateAddMmTasks(tbl); + } else if (isFromMmTable && !isToMmTable) { + result = generateRemoveMmTasks(tbl); + } + } + tbl.getTTable().getParameters().putAll(alterTbl.getProps()); + } + return result; } private int dropConstraint(Hive db, AlterTableDesc alterTbl) http://git-wip-us.apache.org/repos/asf/hive/blob/379d9bab/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchTask.java ----------------------------------------------------------------------
