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
----------------------------------------------------------------------

Reply via email to