You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by da...@apache.org on 2015/12/18 21:06:33 UTC
[1/3] hive git commit: HIVE-12429: Switch default Hive authorization
to SQLStandardAuth in 2.0
Repository: hive
Updated Branches:
refs/heads/master 1199754cc -> 949640919
HIVE-12429: Switch default Hive authorization to SQLStandardAuth in 2.0
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/95d22735
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/95d22735
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/95d22735
Branch: refs/heads/master
Commit: 95d22735d73381458354e0ca79a2cb607f8e2150
Parents: 7a1f14c
Author: Daniel Dai <da...@hortonworks.com>
Authored: Sat Dec 5 21:44:52 2015 -0800
Committer: Daniel Dai <da...@hortonworks.com>
Committed: Sat Dec 5 21:45:32 2015 -0800
----------------------------------------------------------------------
.../org/apache/hadoop/hive/conf/HiveConf.java | 2 +-
.../cli/SemanticAnalysis/HCatAuthUtil.java | 5 +-
.../cli/SemanticAnalysis/TestHCatAuthUtil.java | 4 +-
.../SQLStdHiveAuthorizationValidator.java | 11 --
.../parse/authorization/TestPrivilegesV1.java | 13 +-
.../TestSQLStdHiveAccessControllerCLI.java | 16 +-
.../authorization_cli_auth_enable.q | 7 -
.../clientnegative/authorization_fail_1.q | 1 +
.../clientnegative/authorization_fail_2.q | 1 +
.../clientnegative/authorization_fail_3.q | 1 +
.../clientnegative/authorization_fail_4.q | 1 +
.../clientnegative/authorization_fail_5.q | 3 +-
.../clientnegative/authorization_fail_6.q | 1 +
.../clientnegative/authorization_fail_7.q | 3 +-
.../authorization_fail_create_db.q | 1 +
.../clientnegative/authorization_fail_drop_db.q | 1 +
.../authorization_invalid_priv_v1.q | 1 +
.../queries/clientnegative/authorization_part.q | 3 +-
.../authorization_public_create.q | 1 +
.../clientnegative/authorization_public_drop.q | 1 +
.../clientnegative/authorization_role_case.q | 1 +
.../clientnegative/authorize_grant_public.q | 1 +
.../clientnegative/authorize_revoke_public.q | 1 +
.../clientnegative/exim_22_export_authfail.q | 1 +
.../exim_23_import_exist_authfail.q | 1 +
.../exim_24_import_part_authfail.q | 1 +
.../exim_25_import_nonexist_authfail.q | 1 +
.../clientnegative/join_nonexistent_part.q | 5 -
.../clientnegative/load_exist_part_authfail.q | 1 +
.../clientnegative/load_nonpart_authfail.q | 1 +
.../queries/clientnegative/load_part_authfail.q | 1 +
.../alter_rename_partition_authorization.q | 1 +
.../queries/clientpositive/authorization_1.q | 4 +-
.../queries/clientpositive/authorization_2.q | 4 +-
.../queries/clientpositive/authorization_3.q | 2 +
.../queries/clientpositive/authorization_4.q | 4 +-
.../queries/clientpositive/authorization_5.q | 2 +
.../queries/clientpositive/authorization_6.q | 2 +
.../queries/clientpositive/authorization_7.q | 4 +-
.../queries/clientpositive/authorization_8.q | 1 +
.../queries/clientpositive/authorization_9.q | 1 +
...orization_default_create_table_owner_privs.q | 1 +
.../clientpositive/authorization_explain.q | 1 +
.../authorization_show_role_principals_v1.q | 1 +
.../clientpositive/exim_21_export_authsuccess.q | 1 +
.../exim_22_import_exist_authsuccess.q | 1 +
.../exim_23_import_part_authsuccess.q | 1 +
.../exim_24_import_nonexist_authsuccess.q | 1 +
ql/src/test/queries/clientpositive/index_auth.q | 2 +
ql/src/test/queries/clientpositive/keyword_1.q | 4 +-
.../load_exist_part_authsuccess.q | 1 +
.../clientpositive/load_nonpart_authsuccess.q | 1 +
.../clientpositive/load_part_authsuccess.q | 1 +
ql/src/test/queries/clientpositive/show_roles.q | 2 +
.../authorization_cli_auth_enable.q.out | 1 -
.../clientnegative/join_nonexistent_part.q.out | 1 -
.../clientpositive/authorization_9.q.out | 180 +++++++++++++++++++
.../authorization_explain.q.java1.7.out | 3 -
.../authorization_show_grant.q.out | 60 +++++++
59 files changed, 318 insertions(+), 62 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index d52f994..a563f2e 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -1641,7 +1641,7 @@ public class HiveConf extends Configuration {
HIVE_AUTHORIZATION_ENABLED("hive.security.authorization.enabled", false,
"enable or disable the Hive client authorization"),
HIVE_AUTHORIZATION_MANAGER("hive.security.authorization.manager",
- "org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider",
+ "org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactory",
"The Hive client authorization manager class name. The user defined authorization class should implement \n" +
"interface org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider."),
HIVE_AUTHENTICATOR_MANAGER("hive.security.authenticator.manager",
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/hcatalog/core/src/main/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/HCatAuthUtil.java
----------------------------------------------------------------------
diff --git a/hcatalog/core/src/main/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/HCatAuthUtil.java b/hcatalog/core/src/main/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/HCatAuthUtil.java
index 6dce9c4..c954245 100644
--- a/hcatalog/core/src/main/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/HCatAuthUtil.java
+++ b/hcatalog/core/src/main/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/HCatAuthUtil.java
@@ -20,7 +20,7 @@ package org.apache.hive.hcatalog.cli.SemanticAnalysis;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.ql.session.SessionState;
+import org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider;
final class HCatAuthUtil {
public static boolean isAuthorizationEnabled(Configuration conf) {
@@ -31,6 +31,7 @@ final class HCatAuthUtil {
// additional checks if a V2 authorizer is in use. The reccomended configuration is to
// use storage based authorization in metastore server
return HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_AUTHORIZATION_ENABLED)
- && SessionState.get().getAuthorizer() != null;
+ && HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_AUTHORIZATION_MANAGER)
+ == StorageBasedAuthorizationProvider.class.getName();
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/hcatalog/core/src/test/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/TestHCatAuthUtil.java
----------------------------------------------------------------------
diff --git a/hcatalog/core/src/test/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/TestHCatAuthUtil.java b/hcatalog/core/src/test/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/TestHCatAuthUtil.java
index 830dcb8..a190002 100644
--- a/hcatalog/core/src/test/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/TestHCatAuthUtil.java
+++ b/hcatalog/core/src/test/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/TestHCatAuthUtil.java
@@ -24,6 +24,7 @@ import static org.junit.Assert.assertTrue;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider;
+import org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthorizer;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthorizerFactory;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthzPluginException;
@@ -49,12 +50,13 @@ public class TestHCatAuthUtil {
}
/**
- * Test with auth enabled and v1 auth
+ * Test with auth enabled and StorageBasedAuthorizationProvider
*/
@Test
public void authEnabledV1Auth() throws Exception {
HiveConf hcatConf = new HiveConf(this.getClass());
hcatConf.setBoolVar(ConfVars.HIVE_AUTHORIZATION_ENABLED, true);
+ hcatConf.setVar(ConfVars.HIVE_AUTHORIZATION_MANAGER, StorageBasedAuthorizationProvider.class.getName());
SessionState.start(hcatConf);
assertTrue("hcat auth should be enabled", HCatAuthUtil.isAuthorizationEnabled(hcatConf));
}
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidator.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidator.java b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidator.java
index ee57f69..9f586be 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizationValidator.java
@@ -60,17 +60,6 @@ public class SQLStdHiveAuthorizationValidator implements HiveAuthorizationValida
this.authenticator = authenticator;
this.privController = privilegeManager;
this.ctx = SQLAuthorizationUtils.applyTestSettings(ctx, conf);
- assertHiveCliAuthDisabled(conf);
- }
-
- private void assertHiveCliAuthDisabled(HiveConf conf) throws HiveAuthzPluginException {
- if (ctx.getClientType() == CLIENT_TYPE.HIVECLI
- && conf.getBoolVar(ConfVars.HIVE_AUTHORIZATION_ENABLED)) {
- throw new HiveAuthzPluginException(
- "SQL standards based authorization should not be enabled from hive cli"
- + "Instead the use of storage based authorization in hive metastore is reccomended. Set "
- + ConfVars.HIVE_AUTHORIZATION_ENABLED.varname + "=false to disable authz within cli");
- }
}
@Override
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV1.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV1.java b/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV1.java
index c97bbb8..c614630 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV1.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/parse/authorization/TestPrivilegesV1.java
@@ -76,17 +76,8 @@ public class TestPrivilegesV1 extends PrivilegesTestBase{
*/
@Test
public void testPrivInGrantNotAccepted() throws Exception{
- grantUserTableFail("insert");
- grantUserTableFail("delete");
- }
-
- private void grantUserTableFail(String privName) {
- try{
- grantUserTable(privName, PrivilegeType.UNKNOWN);
- Assert.fail("Exception expected");
- }catch(Exception e){
-
- }
+ grantUserTable("insert", PrivilegeType.INSERT);
+ grantUserTable("delete", PrivilegeType.DELETE);
}
private void grantUserTable(String privName, PrivilegeType privType) throws Exception {
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/TestSQLStdHiveAccessControllerCLI.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/TestSQLStdHiveAccessControllerCLI.java b/ql/src/test/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/TestSQLStdHiveAccessControllerCLI.java
index ac862c5..7d243f0 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/TestSQLStdHiveAccessControllerCLI.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/TestSQLStdHiveAccessControllerCLI.java
@@ -68,22 +68,16 @@ public class TestSQLStdHiveAccessControllerCLI {
}
/**
- * Verify that exceptiion is thrown if authorization is enabled from hive cli,
+ * Verify that no exception is thrown if authorization is enabled from hive cli,
* when sql std auth is used
*/
@Test
- public void testAuthEnableError() {
+ public void testAuthEnable() throws Exception {
HiveConf processedConf = new HiveConf();
processedConf.setBoolVar(ConfVars.HIVE_AUTHORIZATION_ENABLED, true);
- try {
- HiveAuthorizerFactory authorizerFactory = new SQLStdHiveAuthorizerFactory();
- HiveAuthorizer authorizer = authorizerFactory.createHiveAuthorizer(null, processedConf,
- new HadoopDefaultAuthenticator(), getCLISessionCtx());
- fail("Exception expected");
- } catch (HiveAuthzPluginException e) {
- assertTrue(e.getMessage().contains(
- "SQL standards based authorization should not be enabled from hive cli"));
- }
+ HiveAuthorizerFactory authorizerFactory = new SQLStdHiveAuthorizerFactory();
+ HiveAuthorizer authorizer = authorizerFactory.createHiveAuthorizer(null, processedConf,
+ new HadoopDefaultAuthenticator(), getCLISessionCtx());
}
}
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_cli_auth_enable.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_cli_auth_enable.q b/ql/src/test/queries/clientnegative/authorization_cli_auth_enable.q
deleted file mode 100644
index 4761051..0000000
--- a/ql/src/test/queries/clientnegative/authorization_cli_auth_enable.q
+++ /dev/null
@@ -1,7 +0,0 @@
-set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactoryForTest;
-set hive.security.authenticator.manager=org.apache.hadoop.hive.ql.security.SessionStateConfigUserAuthenticator;
-set user.name=hive_test_user;
-set hive.security.authorization.enabled=true;
-
--- verify that sql std auth throws an error with hive cli, if auth is enabled
-show tables 'src';
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_fail_1.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_fail_1.q b/ql/src/test/queries/clientnegative/authorization_fail_1.q
index c38dab5..49aa09e 100644
--- a/ql/src/test/queries/clientnegative/authorization_fail_1.q
+++ b/ql/src/test/queries/clientnegative/authorization_fail_1.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create table authorization_fail_1 (key int, value string);
set hive.security.authorization.enabled=true;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_fail_2.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_fail_2.q b/ql/src/test/queries/clientnegative/authorization_fail_2.q
index 341e447..1a703d5 100644
--- a/ql/src/test/queries/clientnegative/authorization_fail_2.q
+++ b/ql/src/test/queries/clientnegative/authorization_fail_2.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create table authorization_fail_2 (key int, value string) partitioned by (ds string);
set hive.security.authorization.enabled=true;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_fail_3.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_fail_3.q b/ql/src/test/queries/clientnegative/authorization_fail_3.q
index 6a56daa..03c516d 100644
--- a/ql/src/test/queries/clientnegative/authorization_fail_3.q
+++ b/ql/src/test/queries/clientnegative/authorization_fail_3.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
-- SORT_BEFORE_DIFF
create table authorization_fail_3 (key int, value string) partitioned by (ds string);
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_fail_4.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_fail_4.q b/ql/src/test/queries/clientnegative/authorization_fail_4.q
index f0cb645..b3e687e 100644
--- a/ql/src/test/queries/clientnegative/authorization_fail_4.q
+++ b/ql/src/test/queries/clientnegative/authorization_fail_4.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
-- SORT_BEFORE_DIFF
create table authorization_fail_4 (key int, value string) partitioned by (ds string);
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_fail_5.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_fail_5.q b/ql/src/test/queries/clientnegative/authorization_fail_5.q
index b4efab5..abf2e81 100644
--- a/ql/src/test/queries/clientnegative/authorization_fail_5.q
+++ b/ql/src/test/queries/clientnegative/authorization_fail_5.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
-- SORT_BEFORE_DIFF
create table authorization_fail (key int, value string) partitioned by (ds string);
@@ -17,4 +18,4 @@ revoke Select on table authorization_fail partition (ds='2010') from user hive_t
show grant user hive_test_user on table authorization_fail partition (ds='2010');
-select key from authorization_fail where ds='2010';
\ No newline at end of file
+select key from authorization_fail where ds='2010';
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_fail_6.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_fail_6.q b/ql/src/test/queries/clientnegative/authorization_fail_6.q
index 9772469..d3322f4 100644
--- a/ql/src/test/queries/clientnegative/authorization_fail_6.q
+++ b/ql/src/test/queries/clientnegative/authorization_fail_6.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
-- SORT_BEFORE_DIFF
create table authorization_part_fail (key int, value string) partitioned by (ds string);
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_fail_7.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_fail_7.q b/ql/src/test/queries/clientnegative/authorization_fail_7.q
index 492deed..9eeecc1 100644
--- a/ql/src/test/queries/clientnegative/authorization_fail_7.q
+++ b/ql/src/test/queries/clientnegative/authorization_fail_7.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
-- SORT_BEFORE_DIFF
create table authorization_fail (key int, value string);
@@ -14,4 +15,4 @@ show grant role hive_test_role_fail on table authorization_fail;
drop role hive_test_role_fail;
-select key from authorization_fail;
\ No newline at end of file
+select key from authorization_fail;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_fail_create_db.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_fail_create_db.q b/ql/src/test/queries/clientnegative/authorization_fail_create_db.q
index d969e39..147c772 100644
--- a/ql/src/test/queries/clientnegative/authorization_fail_create_db.q
+++ b/ql/src/test/queries/clientnegative/authorization_fail_create_db.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
set hive.security.authorization.enabled=true;
create database db_to_fail;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_fail_drop_db.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_fail_drop_db.q b/ql/src/test/queries/clientnegative/authorization_fail_drop_db.q
index 87719b0..5a98620 100644
--- a/ql/src/test/queries/clientnegative/authorization_fail_drop_db.q
+++ b/ql/src/test/queries/clientnegative/authorization_fail_drop_db.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
set hive.security.authorization.enabled=false;
create database db_fail_to_drop;
set hive.security.authorization.enabled=true;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_invalid_priv_v1.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_invalid_priv_v1.q b/ql/src/test/queries/clientnegative/authorization_invalid_priv_v1.q
index 2a1da23..2742f0d 100644
--- a/ql/src/test/queries/clientnegative/authorization_invalid_priv_v1.q
+++ b/ql/src/test/queries/clientnegative/authorization_invalid_priv_v1.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create table if not exists authorization_invalid_v1 (key int, value string);
grant delete on table authorization_invalid_v1 to user hive_test_user;
drop table authorization_invalid_v1;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_part.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_part.q b/ql/src/test/queries/clientnegative/authorization_part.q
index a654a23..517f513 100644
--- a/ql/src/test/queries/clientnegative/authorization_part.q
+++ b/ql/src/test/queries/clientnegative/authorization_part.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
-- SORT_BEFORE_DIFF
create table authorization_part_fail (key int, value string) partitioned by (ds string);
@@ -34,4 +35,4 @@ revoke select on table authorization_part_fail partition (ds='2010') from group
select key,value, ds from authorization_part_fail where ds>='2010' order by key, ds limit 20;
drop table authorization_part_fail;
-drop table src_auth;
\ No newline at end of file
+drop table src_auth;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_public_create.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_public_create.q b/ql/src/test/queries/clientnegative/authorization_public_create.q
index 8298ce9..00e542a 100644
--- a/ql/src/test/queries/clientnegative/authorization_public_create.q
+++ b/ql/src/test/queries/clientnegative/authorization_public_create.q
@@ -1 +1,2 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create role public;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_public_drop.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_public_drop.q b/ql/src/test/queries/clientnegative/authorization_public_drop.q
index 7e89f6e..1f5025f 100644
--- a/ql/src/test/queries/clientnegative/authorization_public_drop.q
+++ b/ql/src/test/queries/clientnegative/authorization_public_drop.q
@@ -1 +1,2 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
drop role public;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorization_role_case.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorization_role_case.q b/ql/src/test/queries/clientnegative/authorization_role_case.q
index 339239a..bcc075d 100644
--- a/ql/src/test/queries/clientnegative/authorization_role_case.q
+++ b/ql/src/test/queries/clientnegative/authorization_role_case.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create role mixCaseRole1;
create role mixCaseRole2;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorize_grant_public.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorize_grant_public.q b/ql/src/test/queries/clientnegative/authorize_grant_public.q
index e024b50..31d7462 100644
--- a/ql/src/test/queries/clientnegative/authorize_grant_public.q
+++ b/ql/src/test/queries/clientnegative/authorize_grant_public.q
@@ -1 +1,2 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
grant role public to user hive_test_user;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/authorize_revoke_public.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/authorize_revoke_public.q b/ql/src/test/queries/clientnegative/authorize_revoke_public.q
index dadd424..4d949ac 100644
--- a/ql/src/test/queries/clientnegative/authorize_revoke_public.q
+++ b/ql/src/test/queries/clientnegative/authorize_revoke_public.q
@@ -1 +1,2 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
revoke role public from user hive_test_user;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/exim_22_export_authfail.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/exim_22_export_authfail.q b/ql/src/test/queries/clientnegative/exim_22_export_authfail.q
index b818686..5810be5 100644
--- a/ql/src/test/queries/clientnegative/exim_22_export_authfail.q
+++ b/ql/src/test/queries/clientnegative/exim_22_export_authfail.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
set hive.test.mode=true;
set hive.test.mode.prefix=;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/exim_23_import_exist_authfail.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/exim_23_import_exist_authfail.q b/ql/src/test/queries/clientnegative/exim_23_import_exist_authfail.q
index 4acefb9..4e302c0 100644
--- a/ql/src/test/queries/clientnegative/exim_23_import_exist_authfail.q
+++ b/ql/src/test/queries/clientnegative/exim_23_import_exist_authfail.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
set hive.test.mode=true;
set hive.test.mode.prefix=;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/exim_24_import_part_authfail.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/exim_24_import_part_authfail.q b/ql/src/test/queries/clientnegative/exim_24_import_part_authfail.q
index 467014e..0bc070c 100644
--- a/ql/src/test/queries/clientnegative/exim_24_import_part_authfail.q
+++ b/ql/src/test/queries/clientnegative/exim_24_import_part_authfail.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
set hive.test.mode=true;
set hive.test.mode.prefix=;
set hive.test.mode.nosamplelist=exim_department,exim_employee;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/exim_25_import_nonexist_authfail.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/exim_25_import_nonexist_authfail.q b/ql/src/test/queries/clientnegative/exim_25_import_nonexist_authfail.q
index 595fa7e..3ed7a5f 100644
--- a/ql/src/test/queries/clientnegative/exim_25_import_nonexist_authfail.q
+++ b/ql/src/test/queries/clientnegative/exim_25_import_nonexist_authfail.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
set hive.test.mode=true;
set hive.test.mode.prefix=;
set hive.test.mode.nosamplelist=exim_department,exim_employee;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/join_nonexistent_part.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/join_nonexistent_part.q b/ql/src/test/queries/clientnegative/join_nonexistent_part.q
deleted file mode 100644
index bf60d2e..0000000
--- a/ql/src/test/queries/clientnegative/join_nonexistent_part.q
+++ /dev/null
@@ -1,5 +0,0 @@
-set hive.mapred.mode=nonstrict;
-SET hive.security.authorization.enabled = true;
-SELECT *
-FROM srcpart s1 join src s2 on s1.key == s2.key
-WHERE s1.ds='non-existent';
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/load_exist_part_authfail.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/load_exist_part_authfail.q b/ql/src/test/queries/clientnegative/load_exist_part_authfail.q
index eb72d94..f9ecc6f 100644
--- a/ql/src/test/queries/clientnegative/load_exist_part_authfail.q
+++ b/ql/src/test/queries/clientnegative/load_exist_part_authfail.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create table hive_test_src ( col1 string ) partitioned by (pcol1 string) stored as textfile;
alter table hive_test_src add partition (pcol1 = 'test_part');
set hive.security.authorization.enabled=true;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/load_nonpart_authfail.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/load_nonpart_authfail.q b/ql/src/test/queries/clientnegative/load_nonpart_authfail.q
index 3265363..1f40978 100644
--- a/ql/src/test/queries/clientnegative/load_nonpart_authfail.q
+++ b/ql/src/test/queries/clientnegative/load_nonpart_authfail.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create table hive_test_src ( col1 string ) stored as textfile;
set hive.security.authorization.enabled=true;
load data local inpath '../../data/files/test.dat' overwrite into table hive_test_src ;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientnegative/load_part_authfail.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/load_part_authfail.q b/ql/src/test/queries/clientnegative/load_part_authfail.q
index 315988d..5735cd2 100644
--- a/ql/src/test/queries/clientnegative/load_part_authfail.q
+++ b/ql/src/test/queries/clientnegative/load_part_authfail.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create table hive_test_src ( col1 string ) partitioned by (pcol1 string) stored as textfile;
set hive.security.authorization.enabled=true;
load data local inpath '../../data/files/test.dat' overwrite into table hive_test_src partition (pcol1 = 'test_part');
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/alter_rename_partition_authorization.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/alter_rename_partition_authorization.q b/ql/src/test/queries/clientpositive/alter_rename_partition_authorization.q
index cdefc2d..70f2bb4 100644
--- a/ql/src/test/queries/clientpositive/alter_rename_partition_authorization.q
+++ b/ql/src/test/queries/clientpositive/alter_rename_partition_authorization.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
-- SORT_BEFORE_DIFF
create table src_auth_tmp as select * from src;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/authorization_1.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/authorization_1.q b/ql/src/test/queries/clientpositive/authorization_1.q
index d5fd2ec..184acc7 100644
--- a/ql/src/test/queries/clientpositive/authorization_1.q
+++ b/ql/src/test/queries/clientpositive/authorization_1.q
@@ -1,3 +1,5 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
+
-- SORT_BEFORE_DIFF
create table src_autho_test as select * from src;
@@ -86,4 +88,4 @@ revoke select on table src_autho_test from role sRc_roLE;
drop role sRc_roLE;
set hive.security.authorization.enabled=false;
-drop table src_autho_test;
\ No newline at end of file
+drop table src_autho_test;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/authorization_2.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/authorization_2.q b/ql/src/test/queries/clientpositive/authorization_2.q
index 3353c53..efb42f7 100644
--- a/ql/src/test/queries/clientpositive/authorization_2.q
+++ b/ql/src/test/queries/clientpositive/authorization_2.q
@@ -1,3 +1,5 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
+
-- SORT_BEFORE_DIFF
create table authorization_part (key int, value string) partitioned by (ds string);
@@ -108,4 +110,4 @@ show grant group hive_test_group1 on table authorization_part partition (ds='201
revoke select on table src_auth_tmp from user hive_test_user;
set hive.security.authorization.enabled=false;
-drop table authorization_part;
\ No newline at end of file
+drop table authorization_part;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/authorization_3.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/authorization_3.q b/ql/src/test/queries/clientpositive/authorization_3.q
index ba76b00..09c6494 100644
--- a/ql/src/test/queries/clientpositive/authorization_3.q
+++ b/ql/src/test/queries/clientpositive/authorization_3.q
@@ -1,3 +1,5 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
+
-- SORT_BEFORE_DIFF
create table src_autho_test as select * from src;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/authorization_4.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/authorization_4.q b/ql/src/test/queries/clientpositive/authorization_4.q
index 152c8e5..c1848a7 100644
--- a/ql/src/test/queries/clientpositive/authorization_4.q
+++ b/ql/src/test/queries/clientpositive/authorization_4.q
@@ -1,3 +1,5 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
+
-- SORT_BEFORE_DIFF
create table src_autho_test as select * from src;
@@ -10,4 +12,4 @@ show grant user hive_test_user on table src_autho_test;
select key from src_autho_test order by key limit 20;
-drop table src_autho_test;
\ No newline at end of file
+drop table src_autho_test;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/authorization_5.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/authorization_5.q b/ql/src/test/queries/clientpositive/authorization_5.q
index fec27b4..fb9b262 100644
--- a/ql/src/test/queries/clientpositive/authorization_5.q
+++ b/ql/src/test/queries/clientpositive/authorization_5.q
@@ -1,3 +1,5 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
+
-- SORT_BEFORE_DIFF
CREATE DATABASE IF NOT EXISTS test_db COMMENT 'Hive test database';
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/authorization_6.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/authorization_6.q b/ql/src/test/queries/clientpositive/authorization_6.q
index 258ada4..5f9bde7 100644
--- a/ql/src/test/queries/clientpositive/authorization_6.q
+++ b/ql/src/test/queries/clientpositive/authorization_6.q
@@ -1,3 +1,5 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
+
-- SORT_BEFORE_DIFF
create table src_auth_tmp as select * from src;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/authorization_7.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/authorization_7.q b/ql/src/test/queries/clientpositive/authorization_7.q
index ae49000..216951e 100644
--- a/ql/src/test/queries/clientpositive/authorization_7.q
+++ b/ql/src/test/queries/clientpositive/authorization_7.q
@@ -1,3 +1,5 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
+
GRANT ALL TO USER hive_test_user;
SET hive.security.authorization.enabled=true;
CREATE TABLE src_authorization_7 (key int, value string);
@@ -12,4 +14,4 @@ SET hive.security.authorization.enabled=true;
CREATE TABLE src_authorization_7 (key int, value string);
DESCRIBE src_authorization_7;
DROP TABLE src_authorization_7;
-REVOKE ALL FROM GROUP hive_test_group1;
\ No newline at end of file
+REVOKE ALL FROM GROUP hive_test_group1;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/authorization_8.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/authorization_8.q b/ql/src/test/queries/clientpositive/authorization_8.q
index 67fcf31..b8571aa 100644
--- a/ql/src/test/queries/clientpositive/authorization_8.q
+++ b/ql/src/test/queries/clientpositive/authorization_8.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
set hive.security.authorization.enabled=true;
GRANT ALL TO USER hive_test_user;
CREATE TABLE tbl_j5jbymsx8e (key INT, value STRING) PARTITIONED BY (ds STRING);
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/authorization_9.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/authorization_9.q b/ql/src/test/queries/clientpositive/authorization_9.q
index ed62c45..5f72665 100644
--- a/ql/src/test/queries/clientpositive/authorization_9.q
+++ b/ql/src/test/queries/clientpositive/authorization_9.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
-- SORT_BEFORE_DIFF
create table dummy (key string, value string);
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/authorization_default_create_table_owner_privs.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/authorization_default_create_table_owner_privs.q b/ql/src/test/queries/clientpositive/authorization_default_create_table_owner_privs.q
index c265733..e533ee7 100644
--- a/ql/src/test/queries/clientpositive/authorization_default_create_table_owner_privs.q
+++ b/ql/src/test/queries/clientpositive/authorization_default_create_table_owner_privs.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
set hive.security.authorization.createtable.owner.grants=ALL;
create table default_auth_table_creator_priv_test(i int);
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/authorization_explain.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/authorization_explain.q b/ql/src/test/queries/clientpositive/authorization_explain.q
index fe376bf..6a9475c 100644
--- a/ql/src/test/queries/clientpositive/authorization_explain.q
+++ b/ql/src/test/queries/clientpositive/authorization_explain.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
set hive.mapred.mode=nonstrict;
set hive.security.authorization.enabled=true;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/authorization_show_role_principals_v1.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/authorization_show_role_principals_v1.q b/ql/src/test/queries/clientpositive/authorization_show_role_principals_v1.q
index 50e9dc2..45e89c5 100644
--- a/ql/src/test/queries/clientpositive/authorization_show_role_principals_v1.q
+++ b/ql/src/test/queries/clientpositive/authorization_show_role_principals_v1.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create role role1;
grant role1 to user user1 with admin option;
grant role1 to user user2 with admin option;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/exim_21_export_authsuccess.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/exim_21_export_authsuccess.q b/ql/src/test/queries/clientpositive/exim_21_export_authsuccess.q
index 293a011..1e3eaee 100644
--- a/ql/src/test/queries/clientpositive/exim_21_export_authsuccess.q
+++ b/ql/src/test/queries/clientpositive/exim_21_export_authsuccess.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
set hive.test.mode=true;
set hive.test.mode.prefix=;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/exim_22_import_exist_authsuccess.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/exim_22_import_exist_authsuccess.q b/ql/src/test/queries/clientpositive/exim_22_import_exist_authsuccess.q
index 03714ab..606f9af 100644
--- a/ql/src/test/queries/clientpositive/exim_22_import_exist_authsuccess.q
+++ b/ql/src/test/queries/clientpositive/exim_22_import_exist_authsuccess.q
@@ -1,6 +1,7 @@
set hive.test.mode=true;
set hive.test.mode.prefix=;
set hive.test.mode.nosamplelist=exim_department,exim_employee;
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create table exim_department ( dep_id int) stored as textfile;
load data local inpath "../../data/files/test.dat" into table exim_department;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/exim_23_import_part_authsuccess.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/exim_23_import_part_authsuccess.q b/ql/src/test/queries/clientpositive/exim_23_import_part_authsuccess.q
index 9012b0e..316f2e0 100644
--- a/ql/src/test/queries/clientpositive/exim_23_import_part_authsuccess.q
+++ b/ql/src/test/queries/clientpositive/exim_23_import_part_authsuccess.q
@@ -2,6 +2,7 @@ set hive.mapred.mode=nonstrict;
set hive.test.mode=true;
set hive.test.mode.prefix=;
set hive.test.mode.nosamplelist=exim_department,exim_employee;
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create table exim_employee ( emp_id int comment "employee id")
comment "employee table"
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/exim_24_import_nonexist_authsuccess.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/exim_24_import_nonexist_authsuccess.q b/ql/src/test/queries/clientpositive/exim_24_import_nonexist_authsuccess.q
index 8934c47..8ded70b 100644
--- a/ql/src/test/queries/clientpositive/exim_24_import_nonexist_authsuccess.q
+++ b/ql/src/test/queries/clientpositive/exim_24_import_nonexist_authsuccess.q
@@ -1,6 +1,7 @@
set hive.test.mode=true;
set hive.test.mode.prefix=;
set hive.test.mode.nosamplelist=exim_department,exim_employee;
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create table exim_department ( dep_id int) stored as textfile;
load data local inpath "../../data/files/test.dat" into table exim_department;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/index_auth.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/index_auth.q b/ql/src/test/queries/clientpositive/index_auth.q
index 03d77f1..b12b742 100644
--- a/ql/src/test/queries/clientpositive/index_auth.q
+++ b/ql/src/test/queries/clientpositive/index_auth.q
@@ -1,5 +1,7 @@
set hive.stats.dbclass=fs;
SET hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
+
create table foobar(key int, value string) PARTITIONED BY (ds string, hr string);
alter table foobar add partition (ds='2008-04-08',hr='12');
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/keyword_1.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/keyword_1.q b/ql/src/test/queries/clientpositive/keyword_1.q
index d274515..9277725 100644
--- a/ql/src/test/queries/clientpositive/keyword_1.q
+++ b/ql/src/test/queries/clientpositive/keyword_1.q
@@ -1,3 +1,5 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
+
-- SORT_BEFORE_DIFF
create table test_user (`user` string, `group` string);
@@ -16,4 +18,4 @@ explain select role from test_user;
show grant user hive_test on table test_user;
-drop table test_user;
\ No newline at end of file
+drop table test_user;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/load_exist_part_authsuccess.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/load_exist_part_authsuccess.q b/ql/src/test/queries/clientpositive/load_exist_part_authsuccess.q
index 35eb219..1ce4824 100644
--- a/ql/src/test/queries/clientpositive/load_exist_part_authsuccess.q
+++ b/ql/src/test/queries/clientpositive/load_exist_part_authsuccess.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create table hive_test_src ( col1 string ) partitioned by (pcol1 string) stored as textfile;
alter table hive_test_src add partition (pcol1 = 'test_part');
set hive.security.authorization.enabled=true;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/load_nonpart_authsuccess.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/load_nonpart_authsuccess.q b/ql/src/test/queries/clientpositive/load_nonpart_authsuccess.q
index fdee451..29d4e80 100644
--- a/ql/src/test/queries/clientpositive/load_nonpart_authsuccess.q
+++ b/ql/src/test/queries/clientpositive/load_nonpart_authsuccess.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create table hive_test_src ( col1 string ) stored as textfile;
set hive.security.authorization.enabled=true;
grant Update on table hive_test_src to user hive_test_user;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/load_part_authsuccess.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/load_part_authsuccess.q b/ql/src/test/queries/clientpositive/load_part_authsuccess.q
index cee5873..868fd6c 100644
--- a/ql/src/test/queries/clientpositive/load_part_authsuccess.q
+++ b/ql/src/test/queries/clientpositive/load_part_authsuccess.q
@@ -1,3 +1,4 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
create table hive_test_src ( col1 string ) partitioned by (pcol1 string) stored as textfile;
set hive.security.authorization.enabled=true;
grant Update on table hive_test_src to user hive_test_user;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/queries/clientpositive/show_roles.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/show_roles.q b/ql/src/test/queries/clientpositive/show_roles.q
index d8ce96a..9e5a6c3 100644
--- a/ql/src/test/queries/clientpositive/show_roles.q
+++ b/ql/src/test/queries/clientpositive/show_roles.q
@@ -1,3 +1,5 @@
+set hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.DefaultHiveAuthorizationProvider;
+
create role role1;
create role role2;
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/results/clientnegative/authorization_cli_auth_enable.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/authorization_cli_auth_enable.q.out b/ql/src/test/results/clientnegative/authorization_cli_auth_enable.q.out
deleted file mode 100644
index 252eb66..0000000
--- a/ql/src/test/results/clientnegative/authorization_cli_auth_enable.q.out
+++ /dev/null
@@ -1 +0,0 @@
-FAILED: RuntimeException org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthzPluginException: SQL standards based authorization should not be enabled from hive cliInstead the use of storage based authorization in hive metastore is reccomended. Set hive.security.authorization.enabled=false to disable authz within cli
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/results/clientnegative/join_nonexistent_part.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/join_nonexistent_part.q.out b/ql/src/test/results/clientnegative/join_nonexistent_part.q.out
deleted file mode 100644
index a924895..0000000
--- a/ql/src/test/results/clientnegative/join_nonexistent_part.q.out
+++ /dev/null
@@ -1 +0,0 @@
-Authorization failed:No privilege 'Select' found for inputs { database:default, table:srcpart, columnName:key}. Use SHOW GRANT to get more details.
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/results/clientpositive/authorization_9.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/authorization_9.q.out b/ql/src/test/results/clientpositive/authorization_9.q.out
index 7f95f5e..6bb8ecb 100644
--- a/ql/src/test/results/clientpositive/authorization_9.q.out
+++ b/ql/src/test/results/clientpositive/authorization_9.q.out
@@ -46,7 +46,67 @@ POSTHOOK: query: show grant user hive_test_user on all
POSTHOOK: type: SHOW_GRANT
hive_test_user USER SELECT false -1 hive_test_user
default hive_test_user USER SELECT false -1 hive_test_user
+default alltypesorc hive_test_user USER DELETE true -1 hive_test_user
+default alltypesorc hive_test_user USER INSERT true -1 hive_test_user
+default alltypesorc hive_test_user USER SELECT true -1 hive_test_user
+default alltypesorc hive_test_user USER UPDATE true -1 hive_test_user
+default cbo_t1 hive_test_user USER DELETE true -1 hive_test_user
+default cbo_t1 hive_test_user USER INSERT true -1 hive_test_user
+default cbo_t1 hive_test_user USER SELECT true -1 hive_test_user
+default cbo_t1 hive_test_user USER UPDATE true -1 hive_test_user
+default cbo_t2 hive_test_user USER DELETE true -1 hive_test_user
+default cbo_t2 hive_test_user USER INSERT true -1 hive_test_user
+default cbo_t2 hive_test_user USER SELECT true -1 hive_test_user
+default cbo_t2 hive_test_user USER UPDATE true -1 hive_test_user
+default cbo_t3 hive_test_user USER DELETE true -1 hive_test_user
+default cbo_t3 hive_test_user USER INSERT true -1 hive_test_user
+default cbo_t3 hive_test_user USER SELECT true -1 hive_test_user
+default cbo_t3 hive_test_user USER UPDATE true -1 hive_test_user
default dummy hive_test_user USER SELECT false -1 hive_test_user
+default lineitem hive_test_user USER DELETE true -1 hive_test_user
+default lineitem hive_test_user USER INSERT true -1 hive_test_user
+default lineitem hive_test_user USER SELECT true -1 hive_test_user
+default lineitem hive_test_user USER UPDATE true -1 hive_test_user
+default part hive_test_user USER DELETE true -1 hive_test_user
+default part hive_test_user USER INSERT true -1 hive_test_user
+default part hive_test_user USER SELECT true -1 hive_test_user
+default part hive_test_user USER UPDATE true -1 hive_test_user
+default src hive_test_user USER DELETE true -1 hive_test_user
+default src hive_test_user USER INSERT true -1 hive_test_user
+default src hive_test_user USER SELECT true -1 hive_test_user
+default src hive_test_user USER UPDATE true -1 hive_test_user
+default src1 hive_test_user USER DELETE true -1 hive_test_user
+default src1 hive_test_user USER INSERT true -1 hive_test_user
+default src1 hive_test_user USER SELECT true -1 hive_test_user
+default src1 hive_test_user USER UPDATE true -1 hive_test_user
+default src_cbo hive_test_user USER DELETE true -1 hive_test_user
+default src_cbo hive_test_user USER INSERT true -1 hive_test_user
+default src_cbo hive_test_user USER SELECT true -1 hive_test_user
+default src_cbo hive_test_user USER UPDATE true -1 hive_test_user
+default src_json hive_test_user USER DELETE true -1 hive_test_user
+default src_json hive_test_user USER INSERT true -1 hive_test_user
+default src_json hive_test_user USER SELECT true -1 hive_test_user
+default src_json hive_test_user USER UPDATE true -1 hive_test_user
+default src_sequencefile hive_test_user USER DELETE true -1 hive_test_user
+default src_sequencefile hive_test_user USER INSERT true -1 hive_test_user
+default src_sequencefile hive_test_user USER SELECT true -1 hive_test_user
+default src_sequencefile hive_test_user USER UPDATE true -1 hive_test_user
+default src_thrift hive_test_user USER DELETE true -1 hive_test_user
+default src_thrift hive_test_user USER INSERT true -1 hive_test_user
+default src_thrift hive_test_user USER SELECT true -1 hive_test_user
+default src_thrift hive_test_user USER UPDATE true -1 hive_test_user
+default srcbucket hive_test_user USER DELETE true -1 hive_test_user
+default srcbucket hive_test_user USER INSERT true -1 hive_test_user
+default srcbucket hive_test_user USER SELECT true -1 hive_test_user
+default srcbucket hive_test_user USER UPDATE true -1 hive_test_user
+default srcbucket2 hive_test_user USER DELETE true -1 hive_test_user
+default srcbucket2 hive_test_user USER INSERT true -1 hive_test_user
+default srcbucket2 hive_test_user USER SELECT true -1 hive_test_user
+default srcbucket2 hive_test_user USER UPDATE true -1 hive_test_user
+default srcpart hive_test_user USER DELETE true -1 hive_test_user
+default srcpart hive_test_user USER INSERT true -1 hive_test_user
+default srcpart hive_test_user USER SELECT true -1 hive_test_user
+default srcpart hive_test_user USER UPDATE true -1 hive_test_user
default dummy [key] hive_test_user USER SELECT false -1 hive_test_user
default dummy [value] hive_test_user USER SELECT false -1 hive_test_user
PREHOOK: query: grant select to user hive_test_user2
@@ -78,8 +138,68 @@ POSTHOOK: type: SHOW_GRANT
hive_test_user2 USER SELECT false -1 hive_test_user
default hive_test_user USER SELECT false -1 hive_test_user
default hive_test_user2 USER SELECT false -1 hive_test_user
+default alltypesorc hive_test_user USER DELETE true -1 hive_test_user
+default alltypesorc hive_test_user USER INSERT true -1 hive_test_user
+default alltypesorc hive_test_user USER SELECT true -1 hive_test_user
+default alltypesorc hive_test_user USER UPDATE true -1 hive_test_user
+default cbo_t1 hive_test_user USER DELETE true -1 hive_test_user
+default cbo_t1 hive_test_user USER INSERT true -1 hive_test_user
+default cbo_t1 hive_test_user USER SELECT true -1 hive_test_user
+default cbo_t1 hive_test_user USER UPDATE true -1 hive_test_user
+default cbo_t2 hive_test_user USER DELETE true -1 hive_test_user
+default cbo_t2 hive_test_user USER INSERT true -1 hive_test_user
+default cbo_t2 hive_test_user USER SELECT true -1 hive_test_user
+default cbo_t2 hive_test_user USER UPDATE true -1 hive_test_user
+default cbo_t3 hive_test_user USER DELETE true -1 hive_test_user
+default cbo_t3 hive_test_user USER INSERT true -1 hive_test_user
+default cbo_t3 hive_test_user USER SELECT true -1 hive_test_user
+default cbo_t3 hive_test_user USER UPDATE true -1 hive_test_user
default dummy hive_test_user USER SELECT false -1 hive_test_user
default dummy hive_test_user2 USER SELECT false -1 hive_test_user
+default lineitem hive_test_user USER DELETE true -1 hive_test_user
+default lineitem hive_test_user USER INSERT true -1 hive_test_user
+default lineitem hive_test_user USER SELECT true -1 hive_test_user
+default lineitem hive_test_user USER UPDATE true -1 hive_test_user
+default part hive_test_user USER DELETE true -1 hive_test_user
+default part hive_test_user USER INSERT true -1 hive_test_user
+default part hive_test_user USER SELECT true -1 hive_test_user
+default part hive_test_user USER UPDATE true -1 hive_test_user
+default src hive_test_user USER DELETE true -1 hive_test_user
+default src hive_test_user USER INSERT true -1 hive_test_user
+default src hive_test_user USER SELECT true -1 hive_test_user
+default src hive_test_user USER UPDATE true -1 hive_test_user
+default src1 hive_test_user USER DELETE true -1 hive_test_user
+default src1 hive_test_user USER INSERT true -1 hive_test_user
+default src1 hive_test_user USER SELECT true -1 hive_test_user
+default src1 hive_test_user USER UPDATE true -1 hive_test_user
+default src_cbo hive_test_user USER DELETE true -1 hive_test_user
+default src_cbo hive_test_user USER INSERT true -1 hive_test_user
+default src_cbo hive_test_user USER SELECT true -1 hive_test_user
+default src_cbo hive_test_user USER UPDATE true -1 hive_test_user
+default src_json hive_test_user USER DELETE true -1 hive_test_user
+default src_json hive_test_user USER INSERT true -1 hive_test_user
+default src_json hive_test_user USER SELECT true -1 hive_test_user
+default src_json hive_test_user USER UPDATE true -1 hive_test_user
+default src_sequencefile hive_test_user USER DELETE true -1 hive_test_user
+default src_sequencefile hive_test_user USER INSERT true -1 hive_test_user
+default src_sequencefile hive_test_user USER SELECT true -1 hive_test_user
+default src_sequencefile hive_test_user USER UPDATE true -1 hive_test_user
+default src_thrift hive_test_user USER DELETE true -1 hive_test_user
+default src_thrift hive_test_user USER INSERT true -1 hive_test_user
+default src_thrift hive_test_user USER SELECT true -1 hive_test_user
+default src_thrift hive_test_user USER UPDATE true -1 hive_test_user
+default srcbucket hive_test_user USER DELETE true -1 hive_test_user
+default srcbucket hive_test_user USER INSERT true -1 hive_test_user
+default srcbucket hive_test_user USER SELECT true -1 hive_test_user
+default srcbucket hive_test_user USER UPDATE true -1 hive_test_user
+default srcbucket2 hive_test_user USER DELETE true -1 hive_test_user
+default srcbucket2 hive_test_user USER INSERT true -1 hive_test_user
+default srcbucket2 hive_test_user USER SELECT true -1 hive_test_user
+default srcbucket2 hive_test_user USER UPDATE true -1 hive_test_user
+default srcpart hive_test_user USER DELETE true -1 hive_test_user
+default srcpart hive_test_user USER INSERT true -1 hive_test_user
+default srcpart hive_test_user USER SELECT true -1 hive_test_user
+default srcpart hive_test_user USER UPDATE true -1 hive_test_user
default dummy [key] hive_test_user USER SELECT false -1 hive_test_user
default dummy [key] hive_test_user2 USER SELECT false -1 hive_test_user
default dummy [value] hive_test_user USER SELECT false -1 hive_test_user
@@ -90,7 +210,67 @@ POSTHOOK: query: show grant user hive_test_user on all
POSTHOOK: type: SHOW_GRANT
hive_test_user USER SELECT false -1 hive_test_user
default hive_test_user USER SELECT false -1 hive_test_user
+default alltypesorc hive_test_user USER DELETE true -1 hive_test_user
+default alltypesorc hive_test_user USER INSERT true -1 hive_test_user
+default alltypesorc hive_test_user USER SELECT true -1 hive_test_user
+default alltypesorc hive_test_user USER UPDATE true -1 hive_test_user
+default cbo_t1 hive_test_user USER DELETE true -1 hive_test_user
+default cbo_t1 hive_test_user USER INSERT true -1 hive_test_user
+default cbo_t1 hive_test_user USER SELECT true -1 hive_test_user
+default cbo_t1 hive_test_user USER UPDATE true -1 hive_test_user
+default cbo_t2 hive_test_user USER DELETE true -1 hive_test_user
+default cbo_t2 hive_test_user USER INSERT true -1 hive_test_user
+default cbo_t2 hive_test_user USER SELECT true -1 hive_test_user
+default cbo_t2 hive_test_user USER UPDATE true -1 hive_test_user
+default cbo_t3 hive_test_user USER DELETE true -1 hive_test_user
+default cbo_t3 hive_test_user USER INSERT true -1 hive_test_user
+default cbo_t3 hive_test_user USER SELECT true -1 hive_test_user
+default cbo_t3 hive_test_user USER UPDATE true -1 hive_test_user
default dummy hive_test_user USER SELECT false -1 hive_test_user
+default lineitem hive_test_user USER DELETE true -1 hive_test_user
+default lineitem hive_test_user USER INSERT true -1 hive_test_user
+default lineitem hive_test_user USER SELECT true -1 hive_test_user
+default lineitem hive_test_user USER UPDATE true -1 hive_test_user
+default part hive_test_user USER DELETE true -1 hive_test_user
+default part hive_test_user USER INSERT true -1 hive_test_user
+default part hive_test_user USER SELECT true -1 hive_test_user
+default part hive_test_user USER UPDATE true -1 hive_test_user
+default src hive_test_user USER DELETE true -1 hive_test_user
+default src hive_test_user USER INSERT true -1 hive_test_user
+default src hive_test_user USER SELECT true -1 hive_test_user
+default src hive_test_user USER UPDATE true -1 hive_test_user
+default src1 hive_test_user USER DELETE true -1 hive_test_user
+default src1 hive_test_user USER INSERT true -1 hive_test_user
+default src1 hive_test_user USER SELECT true -1 hive_test_user
+default src1 hive_test_user USER UPDATE true -1 hive_test_user
+default src_cbo hive_test_user USER DELETE true -1 hive_test_user
+default src_cbo hive_test_user USER INSERT true -1 hive_test_user
+default src_cbo hive_test_user USER SELECT true -1 hive_test_user
+default src_cbo hive_test_user USER UPDATE true -1 hive_test_user
+default src_json hive_test_user USER DELETE true -1 hive_test_user
+default src_json hive_test_user USER INSERT true -1 hive_test_user
+default src_json hive_test_user USER SELECT true -1 hive_test_user
+default src_json hive_test_user USER UPDATE true -1 hive_test_user
+default src_sequencefile hive_test_user USER DELETE true -1 hive_test_user
+default src_sequencefile hive_test_user USER INSERT true -1 hive_test_user
+default src_sequencefile hive_test_user USER SELECT true -1 hive_test_user
+default src_sequencefile hive_test_user USER UPDATE true -1 hive_test_user
+default src_thrift hive_test_user USER DELETE true -1 hive_test_user
+default src_thrift hive_test_user USER INSERT true -1 hive_test_user
+default src_thrift hive_test_user USER SELECT true -1 hive_test_user
+default src_thrift hive_test_user USER UPDATE true -1 hive_test_user
+default srcbucket hive_test_user USER DELETE true -1 hive_test_user
+default srcbucket hive_test_user USER INSERT true -1 hive_test_user
+default srcbucket hive_test_user USER SELECT true -1 hive_test_user
+default srcbucket hive_test_user USER UPDATE true -1 hive_test_user
+default srcbucket2 hive_test_user USER DELETE true -1 hive_test_user
+default srcbucket2 hive_test_user USER INSERT true -1 hive_test_user
+default srcbucket2 hive_test_user USER SELECT true -1 hive_test_user
+default srcbucket2 hive_test_user USER UPDATE true -1 hive_test_user
+default srcpart hive_test_user USER DELETE true -1 hive_test_user
+default srcpart hive_test_user USER INSERT true -1 hive_test_user
+default srcpart hive_test_user USER SELECT true -1 hive_test_user
+default srcpart hive_test_user USER UPDATE true -1 hive_test_user
default dummy [key] hive_test_user USER SELECT false -1 hive_test_user
default dummy [value] hive_test_user USER SELECT false -1 hive_test_user
PREHOOK: query: show grant user hive_test_user2 on all
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/results/clientpositive/authorization_explain.q.java1.7.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/authorization_explain.q.java1.7.out b/ql/src/test/results/clientpositive/authorization_explain.q.java1.7.out
index b7ec209..a9ed049 100644
--- a/ql/src/test/results/clientpositive/authorization_explain.q.java1.7.out
+++ b/ql/src/test/results/clientpositive/authorization_explain.q.java1.7.out
@@ -20,9 +20,6 @@ CURRENT_USER:
hive_test_user
OPERATION:
QUERY
-AUTHORIZATION_FAILURES:
- No privilege 'Select' found for inputs { database:default, table:src, columnName:key}
- No privilege 'Select' found for inputs { database:default, table:srcpart, columnName:key}
Warning: Shuffle Join JOIN[7][tables = [$hdt$_0, $hdt$_1]] in Stage 'Stage-1:MAPRED' is a cross product
PREHOOK: query: explain formatted authorization select * from src join srcpart
PREHOOK: type: QUERY
http://git-wip-us.apache.org/repos/asf/hive/blob/95d22735/ql/src/test/results/clientpositive/authorization_show_grant.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/authorization_show_grant.q.out b/ql/src/test/results/clientpositive/authorization_show_grant.q.out
index 2e7d7f6..7fa0b1c 100644
--- a/ql/src/test/results/clientpositive/authorization_show_grant.q.out
+++ b/ql/src/test/results/clientpositive/authorization_show_grant.q.out
@@ -111,6 +111,66 @@ PREHOOK: query: show grant
PREHOOK: type: SHOW_GRANT
POSTHOOK: query: show grant
POSTHOOK: type: SHOW_GRANT
+default alltypesorc hive_test_user USER DELETE true -1 hive_test_user
+default alltypesorc hive_test_user USER INSERT true -1 hive_test_user
+default alltypesorc hive_test_user USER SELECT true -1 hive_test_user
+default alltypesorc hive_test_user USER UPDATE true -1 hive_test_user
+default cbo_t1 hive_test_user USER DELETE true -1 hive_test_user
+default cbo_t1 hive_test_user USER INSERT true -1 hive_test_user
+default cbo_t1 hive_test_user USER SELECT true -1 hive_test_user
+default cbo_t1 hive_test_user USER UPDATE true -1 hive_test_user
+default cbo_t2 hive_test_user USER DELETE true -1 hive_test_user
+default cbo_t2 hive_test_user USER INSERT true -1 hive_test_user
+default cbo_t2 hive_test_user USER SELECT true -1 hive_test_user
+default cbo_t2 hive_test_user USER UPDATE true -1 hive_test_user
+default cbo_t3 hive_test_user USER DELETE true -1 hive_test_user
+default cbo_t3 hive_test_user USER INSERT true -1 hive_test_user
+default cbo_t3 hive_test_user USER SELECT true -1 hive_test_user
+default cbo_t3 hive_test_user USER UPDATE true -1 hive_test_user
+default lineitem hive_test_user USER DELETE true -1 hive_test_user
+default lineitem hive_test_user USER INSERT true -1 hive_test_user
+default lineitem hive_test_user USER SELECT true -1 hive_test_user
+default lineitem hive_test_user USER UPDATE true -1 hive_test_user
+default part hive_test_user USER DELETE true -1 hive_test_user
+default part hive_test_user USER INSERT true -1 hive_test_user
+default part hive_test_user USER SELECT true -1 hive_test_user
+default part hive_test_user USER UPDATE true -1 hive_test_user
+default src hive_test_user USER DELETE true -1 hive_test_user
+default src hive_test_user USER INSERT true -1 hive_test_user
+default src hive_test_user USER SELECT true -1 hive_test_user
+default src hive_test_user USER UPDATE true -1 hive_test_user
+default src1 hive_test_user USER DELETE true -1 hive_test_user
+default src1 hive_test_user USER INSERT true -1 hive_test_user
+default src1 hive_test_user USER SELECT true -1 hive_test_user
+default src1 hive_test_user USER UPDATE true -1 hive_test_user
+default src_cbo hive_test_user USER DELETE true -1 hive_test_user
+default src_cbo hive_test_user USER INSERT true -1 hive_test_user
+default src_cbo hive_test_user USER SELECT true -1 hive_test_user
+default src_cbo hive_test_user USER UPDATE true -1 hive_test_user
+default src_json hive_test_user USER DELETE true -1 hive_test_user
+default src_json hive_test_user USER INSERT true -1 hive_test_user
+default src_json hive_test_user USER SELECT true -1 hive_test_user
+default src_json hive_test_user USER UPDATE true -1 hive_test_user
+default src_sequencefile hive_test_user USER DELETE true -1 hive_test_user
+default src_sequencefile hive_test_user USER INSERT true -1 hive_test_user
+default src_sequencefile hive_test_user USER SELECT true -1 hive_test_user
+default src_sequencefile hive_test_user USER UPDATE true -1 hive_test_user
+default src_thrift hive_test_user USER DELETE true -1 hive_test_user
+default src_thrift hive_test_user USER INSERT true -1 hive_test_user
+default src_thrift hive_test_user USER SELECT true -1 hive_test_user
+default src_thrift hive_test_user USER UPDATE true -1 hive_test_user
+default srcbucket hive_test_user USER DELETE true -1 hive_test_user
+default srcbucket hive_test_user USER INSERT true -1 hive_test_user
+default srcbucket hive_test_user USER SELECT true -1 hive_test_user
+default srcbucket hive_test_user USER UPDATE true -1 hive_test_user
+default srcbucket2 hive_test_user USER DELETE true -1 hive_test_user
+default srcbucket2 hive_test_user USER INSERT true -1 hive_test_user
+default srcbucket2 hive_test_user USER SELECT true -1 hive_test_user
+default srcbucket2 hive_test_user USER UPDATE true -1 hive_test_user
+default srcpart hive_test_user USER DELETE true -1 hive_test_user
+default srcpart hive_test_user USER INSERT true -1 hive_test_user
+default srcpart hive_test_user USER SELECT true -1 hive_test_user
+default srcpart hive_test_user USER UPDATE true -1 hive_test_user
default t1 rolea ROLE SELECT false -1 user1
default t1 user1 USER DELETE true -1 hive_admin_user
default t1 user1 USER INSERT true -1 hive_admin_user
[3/3] hive git commit: HIVE-11935: Race condition in
HiveMetaStoreClient: isCompatibleWith and close (Daniel Dai,
Reviewed by Alan Gates)
Posted by da...@apache.org.
HIVE-11935: Race condition in HiveMetaStoreClient: isCompatibleWith and close (Daniel Dai, Reviewed by Alan Gates)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/94964091
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/94964091
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/94964091
Branch: refs/heads/master
Commit: 949640919e47bf5c729c51ba396424f7101ff43b
Parents: 27a14d5
Author: Daniel Dai <da...@hortonworks.com>
Authored: Fri Dec 18 12:06:16 2015 -0800
Committer: Daniel Dai <da...@hortonworks.com>
Committed: Fri Dec 18 12:06:16 2015 -0800
----------------------------------------------------------------------
.../org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/94964091/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
index c5e7a5f..178796d 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
@@ -309,13 +309,16 @@ public class HiveMetaStoreClient implements IMetaStoreClient {
@Override
public boolean isCompatibleWith(HiveConf conf) {
- if (currentMetaVars == null) {
+ // Make a copy of currentMetaVars, there is a race condition that
+ // currentMetaVars might be changed during the execution of the method
+ Map<String, String> currentMetaVarsCopy = currentMetaVars;
+ if (currentMetaVarsCopy == null) {
return false; // recreate
}
boolean compatible = true;
for (ConfVars oneVar : HiveConf.metaVars) {
// Since metaVars are all of different types, use string for comparison
- String oldVar = currentMetaVars.get(oneVar.varname);
+ String oldVar = currentMetaVarsCopy.get(oneVar.varname);
String newVar = conf.get(oneVar.varname, "");
if (oldVar == null ||
(oneVar.isCaseSensitive() ? !oldVar.equals(newVar) : !oldVar.equalsIgnoreCase(newVar))) {
[2/3] hive git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/hive
Posted by da...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/hive
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/27a14d5a
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/27a14d5a
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/27a14d5a
Branch: refs/heads/master
Commit: 27a14d5a4cf00b34bdfd9c556c71b49fa2e58fff
Parents: 95d2273 1199754
Author: Daniel Dai <da...@hortonworks.com>
Authored: Fri Dec 18 12:04:17 2015 -0800
Committer: Daniel Dai <da...@hortonworks.com>
Committed: Fri Dec 18 12:04:17 2015 -0800
----------------------------------------------------------------------
.../predicate/AccumuloPredicateHandler.java | 4 +-
.../predicate/TestAccumuloPredicateHandler.java | 36 +-
common/pom.xml | 5 +
.../hadoop/hive/common/DiskRangeInfo.java | 59 -
.../common/metrics/common/MetricsConstant.java | 8 +
.../metrics/metrics2/CodahaleMetrics.java | 7 +
.../org/apache/hadoop/hive/conf/HiveConf.java | 125 +-
.../apache/hadoop/hive/ql/log/PerfLogger.java | 56 +-
.../apache/hive/common/util/BloomFilter.java | 309 -
.../org/apache/hive/common/util/Murmur3.java | 335 -
.../java/org/apache/hive/http/HttpServer.java | 47 +
.../hive/common/metrics/MetricsTestUtils.java | 13 +-
.../apache/hadoop/hive/conf/TestHiveConf.java | 14 +
.../apache/hive/common/util/TestMurmur3.java | 224 -
conf/ivysettings.xml | 12 +-
data/conf/hive-site.xml | 5 +
data/conf/llap/hive-site.xml | 5 +
data/conf/llap/llap-daemon-site.xml | 5 +
data/conf/perf-reg/hive-site.xml | 285 +
data/conf/perf-reg/tez-site.xml | 6 +
.../metastore_export/csv/TABLE_PARAMS.txt | 102 +
.../metastore_export/csv/TAB_COL_STATS.txt | 259 +
data/scripts/q_perf_test_init.sql | 616 +
.../hive/hbase/HiveHBaseTableInputFormat.java | 11 +-
.../test/results/positive/hbase_queries.q.out | 38 +-
.../src/test/templates/TestHBaseCliDriver.vm | 63 +-
.../templates/TestHBaseNegativeCliDriver.vm | 64 +-
.../hive/hcatalog/mapreduce/SpecialCases.java | 2 +-
.../hive/hcatalog/api/HCatClientHMSImpl.java | 26 +-
itests/custom-udfs/pom.xml | 62 +
itests/custom-udfs/udf-classloader-udf1/pom.xml | 43 +
.../src/main/java/hive/it/custom/udfs/UDF1.java | 58 +
itests/custom-udfs/udf-classloader-udf2/pom.xml | 43 +
.../src/main/java/hive/it/custom/udfs/UDF2.java | 60 +
itests/custom-udfs/udf-classloader-util/pom.xml | 35 +
.../src/main/java/hive/it/custom/udfs/Util.java | 25 +
.../hive/thrift/TestHadoopAuthBridge23.java | 4 -
.../hive/metastore/TestMetaStoreMetrics.java | 152 +-
.../hbase/TestHBaseMetastoreMetrics.java | 128 +
.../hadoop/hive/ql/TestLocationQueries.java | 2 +-
.../plugin/TestHiveAuthorizerShowFilters.java | 36 +-
.../org/apache/hive/jdbc/TestJdbcDriver2.java | 8 +
.../hive/jdbc/miniHS2/TestHs2Metrics.java | 42 +-
itests/pom.xml | 1 +
itests/qtest/pom.xml | 21 +-
.../test/resources/testconfiguration.properties | 1 +
.../hadoop/hive/accumulo/AccumuloQTestUtil.java | 2 +-
.../hadoop/hive/hbase/HBaseQTestUtil.java | 2 +-
.../hadoop/hive/hbase/HBaseTestSetup.java | 9 +-
.../org/apache/hadoop/hive/ql/QTestUtil.java | 337 +-
.../org/apache/hive/jdbc/HiveConnection.java | 9 +-
.../org/apache/hive/jdbc/HiveStatement.java | 43 +-
jdbc/src/java/org/apache/hive/jdbc/Utils.java | 2 +
.../hadoop/hive/llap/io/api/LlapIoProxy.java | 78 -
.../hadoop/hive/llap/io/api/LlapProxy.java | 111 +
.../hive/llap/registry/ServiceInstance.java | 7 +
.../registry/impl/LlapFixedRegistryImpl.java | 7 +
.../registry/impl/LlapYarnRegistryImpl.java | 30 +-
.../hive/llap/security/LlapTokenIdentifier.java | 82 +
.../hive/llap/security/LlapTokenProvider.java | 27 +
.../daemon/rpc/LlapDaemonProtocolProtos.java | 1059 +-
.../hadoop/hive/llap/cache/BuddyAllocator.java | 1 -
.../llap/cache/LowLevelCacheMemoryManager.java | 41 +-
.../daemon/LlapDaemonProtocolBlockingPB.java | 6 +
.../LlapManagementProtocolBlockingPB.java | 24 +
.../hive/llap/daemon/impl/LlapDaemon.java | 41 +-
.../impl/LlapDaemonProtocolClientImpl.java | 1 -
.../impl/LlapDaemonProtocolServerImpl.java | 155 +-
.../impl/LlapManagementProtocolClientImpl.java | 82 +
.../hive/llap/daemon/impl/QueryFileCleaner.java | 96 -
.../hive/llap/daemon/impl/QueryTracker.java | 114 +-
.../daemon/services/impl/LlapWebServices.java | 33 +-
.../llap/io/decode/OrcEncodedDataConsumer.java | 4 +-
.../llap/io/encoded/OrcEncodedDataReader.java | 99 +-
.../hive/llap/io/metadata/OrcFileMetadata.java | 41 +-
.../llap/io/metadata/OrcStripeMetadata.java | 46 +-
.../llap/metrics/LlapDaemonCacheMetrics.java | 13 +-
.../protocol/LlapTaskUmbilicalProtocol.java | 3 +
.../llap/security/LlapDaemonPolicyProvider.java | 38 +
.../hive/llap/security/LlapSecurityHelper.java | 155 +
.../llap/security/LlapServerSecurityInfo.java | 78 +
.../hive/llap/security/LlapTokenSelector.java | 53 +
.../hive/llap/security/SecretManager.java | 91 +
.../llap/tezplugins/LlapTaskCommunicator.java | 22 +-
.../tezplugins/LlapUmbilicalPolicyProvider.java | 42 +
.../hive/llap/tezplugins/TaskCommunicator.java | 42 +-
.../org.apache.hadoop.security.SecurityInfo | 14 +
...rg.apache.hadoop.security.token.TokenRenewer | 14 +
llap-server/src/main/resources/package.py | 6 +-
llap-server/src/main/resources/templates.py | 2 +-
.../src/protobuf/LlapDaemonProtocol.proto | 11 +
.../TestIncrementalObjectSizeEstimator.java | 91 +-
.../llap/cache/TestLowLevelLrfuCachePolicy.java | 52 +-
.../hive/llap/daemon/MiniLlapCluster.java | 2 +-
.../impl/TestLlapDaemonProtocolServerImpl.java | 3 +-
.../src/test/resources/llap-daemon-site.xml | 6 +
.../upgrade/derby/022-HIVE-11107.derby.sql | 2 +
.../upgrade/derby/hive-schema-2.1.0.derby.sql | 4 +-
.../hive/metastore/HMSMetricsListener.java | 113 +
.../hadoop/hive/metastore/HiveMetaStore.java | 51 +
.../hadoop/hive/metastore/ObjectStore.java | 38 +-
.../apache/hadoop/hive/metastore/RawStore.java | 19 +
.../hive/metastore/hbase/HBaseReadWrite.java | 20 +
.../hadoop/hive/metastore/hbase/HBaseStore.java | 30 +
.../hadoop/hive/metastore/txn/TxnHandler.java | 89 +-
.../DummyRawStoreControlledCommit.java | 15 +
.../DummyRawStoreForJdoConnection.java | 15 +
.../TestHiveMetaStorePartitionSpecs.java | 2 +-
orc/pom.xml | 136 +
.../protobuf-java/org/apache/orc/OrcProto.java | 19279 +++++++++++++++++
.../org/apache/orc/BinaryColumnStatistics.java | 27 +
orc/src/java/org/apache/orc/BloomFilterIO.java | 43 +
.../org/apache/orc/BooleanColumnStatistics.java | 29 +
.../java/org/apache/orc/ColumnStatistics.java | 36 +
.../java/org/apache/orc/CompressionCodec.java | 69 +
.../java/org/apache/orc/CompressionKind.java | 27 +
orc/src/java/org/apache/orc/DataReader.java | 58 +
.../org/apache/orc/DateColumnStatistics.java | 39 +
.../org/apache/orc/DecimalColumnStatistics.java | 46 +
.../org/apache/orc/DoubleColumnStatistics.java | 46 +
orc/src/java/org/apache/orc/FileMetaInfo.java | 64 +
orc/src/java/org/apache/orc/FileMetadata.java | 64 +
.../org/apache/orc/IntegerColumnStatistics.java | 52 +
orc/src/java/org/apache/orc/OrcConf.java | 191 +
orc/src/java/org/apache/orc/OrcFile.java | 536 +
orc/src/java/org/apache/orc/OrcUtils.java | 452 +
orc/src/java/org/apache/orc/Reader.java | 363 +
orc/src/java/org/apache/orc/RecordReader.java | 66 +
.../org/apache/orc/StringColumnStatistics.java | 43 +
.../java/org/apache/orc/StripeInformation.java | 59 +
.../java/org/apache/orc/StripeStatistics.java | 44 +
.../apache/orc/TimestampColumnStatistics.java | 38 +
.../java/org/apache/orc/TypeDescription.java | 544 +
orc/src/java/org/apache/orc/Writer.java | 114 +
.../org/apache/orc/impl/BitFieldReader.java | 216 +
.../org/apache/orc/impl/BitFieldWriter.java | 73 +
.../java/org/apache/orc/impl/BufferChunk.java | 85 +
.../apache/orc/impl/ColumnStatisticsImpl.java | 1097 +
.../orc/impl/DirectDecompressionCodec.java | 28 +
.../org/apache/orc/impl/DynamicByteArray.java | 303 +
.../org/apache/orc/impl/DynamicIntArray.java | 142 +
.../java/org/apache/orc/impl/HadoopShims.java | 64 +
.../org/apache/orc/impl/HadoopShimsCurrent.java | 62 +
.../org/apache/orc/impl/HadoopShims_2_2.java | 36 +
orc/src/java/org/apache/orc/impl/InStream.java | 496 +
.../java/org/apache/orc/impl/IntegerReader.java | 67 +
.../java/org/apache/orc/impl/IntegerWriter.java | 47 +
.../java/org/apache/orc/impl/MemoryManager.java | 214 +
.../org/apache/orc/impl/MetadataReader.java | 34 +
.../org/apache/orc/impl/MetadataReaderImpl.java | 125 +
orc/src/java/org/apache/orc/impl/OrcIndex.java | 43 +
orc/src/java/org/apache/orc/impl/OutStream.java | 289 +
.../org/apache/orc/impl/PositionProvider.java | 26 +
.../org/apache/orc/impl/PositionRecorder.java | 25 +
.../apache/orc/impl/PositionedOutputStream.java | 39 +
.../java/org/apache/orc/impl/RedBlackTree.java | 311 +
.../apache/orc/impl/RunLengthByteReader.java | 150 +
.../apache/orc/impl/RunLengthByteWriter.java | 106 +
.../apache/orc/impl/RunLengthIntegerReader.java | 157 +
.../orc/impl/RunLengthIntegerReaderV2.java | 390 +
.../apache/orc/impl/RunLengthIntegerWriter.java | 143 +
.../orc/impl/RunLengthIntegerWriterV2.java | 831 +
.../org/apache/orc/impl/SerializationUtils.java | 1297 ++
.../orc/impl/SettableUncompressedStream.java | 44 +
.../java/org/apache/orc/impl/SnappyCodec.java | 108 +
.../java/org/apache/orc/impl/StreamName.java | 97 +
.../org/apache/orc/impl/StringRedBlackTree.java | 210 +
.../java/org/apache/orc/impl/WriterImpl.java | 2912 +++
orc/src/java/org/apache/orc/impl/ZlibCodec.java | 169 +
orc/src/protobuf/orc_proto.proto | 220 +
.../org/apache/orc/impl/TestBitFieldReader.java | 145 +
.../test/org/apache/orc/impl/TestBitPack.java | 279 +
.../org/apache/orc/impl/TestDynamicArray.java | 90 +
.../test/org/apache/orc/impl/TestInStream.java | 314 +
.../orc/impl/TestIntegerCompressionReader.java | 130 +
.../org/apache/orc/impl/TestMemoryManager.java | 133 +
.../orc/impl/TestRunLengthByteReader.java | 143 +
.../orc/impl/TestRunLengthIntegerReader.java | 125 +
.../apache/orc/impl/TestSerializationUtils.java | 164 +
.../apache/orc/impl/TestStringRedBlackTree.java | 234 +
orc/src/test/org/apache/orc/impl/TestZlib.java | 56 +
pom.xml | 1 +
ql/pom.xml | 61 +-
.../apache/hadoop/hive/ql/io/orc/OrcProto.java | 19272 ----------------
.../java/org/apache/hadoop/hive/ql/Driver.java | 206 +-
.../org/apache/hadoop/hive/ql/ErrorMsg.java | 1 +
.../org/apache/hadoop/hive/ql/exec/DDLTask.java | 33 +-
.../hive/ql/exec/GlobalWorkMapFactory.java | 4 +-
.../hadoop/hive/ql/exec/LimitOperator.java | 6 +-
.../hadoop/hive/ql/exec/MapJoinOperator.java | 25 +-
.../hadoop/hive/ql/exec/ObjectCacheFactory.java | 6 +-
.../apache/hadoop/hive/ql/exec/Operator.java | 2 +-
.../hive/ql/exec/OrcFileMergeOperator.java | 4 +-
.../apache/hadoop/hive/ql/exec/PTFUtils.java | 180 -
.../hadoop/hive/ql/exec/ReduceSinkOperator.java | 4 -
.../hive/ql/exec/SerializationUtilities.java | 488 +
.../org/apache/hadoop/hive/ql/exec/Task.java | 4 -
.../hadoop/hive/ql/exec/UDFClassLoader.java | 70 +
.../apache/hadoop/hive/ql/exec/Utilities.java | 745 +-
.../hadoop/hive/ql/exec/mr/ExecDriver.java | 5 +-
.../hadoop/hive/ql/exec/mr/MapRedTask.java | 3 +-
.../hadoop/hive/ql/exec/mr/MapredLocalTask.java | 3 +-
.../persistence/HybridHashTableContainer.java | 29 +-
.../ql/exec/persistence/ObjectContainer.java | 40 +-
.../hive/ql/exec/spark/KryoSerializer.java | 28 +-
.../ql/exec/spark/RemoteHiveSparkClient.java | 1 -
.../hive/ql/exec/spark/SparkUtilities.java | 6 +-
.../hive/ql/exec/tez/MapRecordProcessor.java | 4 +-
.../hive/ql/exec/tez/ReduceRecordProcessor.java | 4 +-
.../hive/ql/exec/tez/TezSessionState.java | 38 +-
.../ql/exec/vector/VectorLimitOperator.java | 26 +-
.../ql/exec/vector/VectorizedBatchUtil.java | 13 +-
.../ql/exec/vector/udf/VectorUDFArgDesc.java | 12 +
.../org/apache/hadoop/hive/ql/io/HdfsUtils.java | 21 +-
.../hadoop/hive/ql/io/HiveInputFormat.java | 11 +-
.../hive/ql/io/filters/BloomFilterIO.java | 44 -
.../hive/ql/io/orc/BinaryColumnStatistics.java | 25 -
.../hadoop/hive/ql/io/orc/BitFieldReader.java | 212 -
.../hadoop/hive/ql/io/orc/BitFieldWriter.java | 69 -
.../hive/ql/io/orc/BooleanColumnStatistics.java | 27 -
.../hadoop/hive/ql/io/orc/ColumnStatistics.java | 36 -
.../hive/ql/io/orc/ColumnStatisticsImpl.java | 1082 -
.../hadoop/hive/ql/io/orc/CompressionCodec.java | 69 -
.../hadoop/hive/ql/io/orc/CompressionKind.java | 18 +-
.../hadoop/hive/ql/io/orc/DataReader.java | 58 -
.../hive/ql/io/orc/DateColumnStatistics.java | 37 -
.../hive/ql/io/orc/DecimalColumnStatistics.java | 45 -
.../ql/io/orc/DirectDecompressionCodec.java | 26 -
.../hive/ql/io/orc/DoubleColumnStatistics.java | 44 -
.../hadoop/hive/ql/io/orc/DynamicByteArray.java | 303 -
.../hadoop/hive/ql/io/orc/DynamicIntArray.java | 142 -
.../apache/hadoop/hive/ql/io/orc/FileDump.java | 22 +-
.../hadoop/hive/ql/io/orc/FileMetaInfo.java | 64 -
.../hadoop/hive/ql/io/orc/FileMetadata.java | 63 -
.../apache/hadoop/hive/ql/io/orc/InStream.java | 501 -
.../hive/ql/io/orc/IntegerColumnStatistics.java | 50 -
.../hadoop/hive/ql/io/orc/IntegerReader.java | 67 -
.../hadoop/hive/ql/io/orc/IntegerWriter.java | 47 -
.../hadoop/hive/ql/io/orc/JsonFileDump.java | 18 +-
.../hadoop/hive/ql/io/orc/MemoryManager.java | 213 -
.../hadoop/hive/ql/io/orc/MetadataReader.java | 34 -
.../hive/ql/io/orc/MetadataReaderImpl.java | 123 -
.../apache/hadoop/hive/ql/io/orc/OrcConf.java | 191 -
.../apache/hadoop/hive/ql/io/orc/OrcFile.java | 372 +-
.../hive/ql/io/orc/OrcFileKeyWrapper.java | 2 +
.../io/orc/OrcFileStripeMergeRecordReader.java | 4 +-
.../hive/ql/io/orc/OrcFileValueWrapper.java | 2 +
.../hadoop/hive/ql/io/orc/OrcInputFormat.java | 193 +-
.../hive/ql/io/orc/OrcNewInputFormat.java | 1 +
.../hadoop/hive/ql/io/orc/OrcNewSplit.java | 1 +
.../hadoop/hive/ql/io/orc/OrcOutputFormat.java | 5 +-
.../hive/ql/io/orc/OrcRawRecordMerger.java | 7 +-
.../apache/hadoop/hive/ql/io/orc/OrcSerde.java | 1 +
.../apache/hadoop/hive/ql/io/orc/OrcSplit.java | 2 +-
.../apache/hadoop/hive/ql/io/orc/OrcStruct.java | 1 +
.../apache/hadoop/hive/ql/io/orc/OrcUnion.java | 1 +
.../apache/hadoop/hive/ql/io/orc/OrcUtils.java | 629 -
.../apache/hadoop/hive/ql/io/orc/OutStream.java | 286 -
.../hadoop/hive/ql/io/orc/PositionProvider.java | 26 -
.../hadoop/hive/ql/io/orc/PositionRecorder.java | 25 -
.../hive/ql/io/orc/PositionedOutputStream.java | 38 -
.../apache/hadoop/hive/ql/io/orc/Reader.java | 319 +-
.../hadoop/hive/ql/io/orc/ReaderImpl.java | 69 +-
.../hadoop/hive/ql/io/orc/RecordReader.java | 38 +-
.../hadoop/hive/ql/io/orc/RecordReaderImpl.java | 120 +-
.../hive/ql/io/orc/RecordReaderUtils.java | 12 +-
.../hadoop/hive/ql/io/orc/RedBlackTree.java | 309 -
.../hive/ql/io/orc/RunLengthByteReader.java | 150 -
.../hive/ql/io/orc/RunLengthByteWriter.java | 106 -
.../hive/ql/io/orc/RunLengthIntegerReader.java | 157 -
.../ql/io/orc/RunLengthIntegerReaderV2.java | 392 -
.../hive/ql/io/orc/RunLengthIntegerWriter.java | 143 -
.../ql/io/orc/RunLengthIntegerWriterV2.java | 831 -
.../hadoop/hive/ql/io/orc/SchemaEvolution.java | 12 +-
.../hive/ql/io/orc/SerializationUtils.java | 1291 --
.../ql/io/orc/SettableUncompressedStream.java | 44 -
.../hadoop/hive/ql/io/orc/SnappyCodec.java | 109 -
.../hadoop/hive/ql/io/orc/StreamName.java | 95 -
.../hive/ql/io/orc/StringColumnStatistics.java | 41 -
.../hive/ql/io/orc/StringRedBlackTree.java | 207 -
.../hive/ql/io/orc/StripeInformation.java | 59 -
.../hadoop/hive/ql/io/orc/StripeStatistics.java | 42 -
.../ql/io/orc/TimestampColumnStatistics.java | 38 -
.../hive/ql/io/orc/TreeReaderFactory.java | 14 +-
.../hadoop/hive/ql/io/orc/TypeDescription.java | 540 -
.../ql/io/orc/VectorizedOrcInputFormat.java | 4 +-
.../apache/hadoop/hive/ql/io/orc/Writer.java | 90 +-
.../hadoop/hive/ql/io/orc/WriterImpl.java | 3377 +--
.../apache/hadoop/hive/ql/io/orc/ZlibCodec.java | 171 -
.../hive/ql/io/orc/encoded/EncodedReader.java | 9 +-
.../ql/io/orc/encoded/EncodedReaderImpl.java | 89 +-
.../orc/encoded/EncodedTreeReaderFactory.java | 260 +-
.../hadoop/hive/ql/io/orc/encoded/Reader.java | 8 +-
.../hive/ql/io/orc/encoded/ReaderImpl.java | 5 +-
.../hive/ql/io/orc/encoded/StreamUtils.java | 11 +-
.../hive/ql/io/parquet/ProjectionPusher.java | 3 +-
.../io/parquet/convert/HiveStructConverter.java | 6 +-
.../hive/ql/io/sarg/ConvertAstToSearchArg.java | 64 +-
.../hadoop/hive/ql/lockmgr/DbLockManager.java | 47 +-
.../apache/hadoop/hive/ql/metadata/Hive.java | 63 +-
.../ql/optimizer/AbstractBucketJoinProc.java | 4 +-
.../hive/ql/optimizer/AbstractSMBJoinProc.java | 6 +-
.../ql/optimizer/BucketMapJoinOptimizer.java | 3 +-
.../BucketingSortingReduceSinkOptimizer.java | 2 +-
.../hadoop/hive/ql/optimizer/ColumnPruner.java | 2 +-
.../hive/ql/optimizer/ConstantPropagate.java | 2 +-
.../DynamicPartitionPruningOptimization.java | 73 +-
.../optimizer/FixedBucketPruningOptimizer.java | 2 +-
.../hive/ql/optimizer/GenMRFileSink1.java | 6 +-
.../hive/ql/optimizer/GenMRProcContext.java | 20 +-
.../hive/ql/optimizer/GenMRTableScan1.java | 7 +-
.../hadoop/hive/ql/optimizer/GenMRUnion1.java | 5 +-
.../hive/ql/optimizer/GenMapRedUtils.java | 43 +-
.../hive/ql/optimizer/GlobalLimitOptimizer.java | 32 +-
.../hive/ql/optimizer/GroupByOptimizer.java | 2 +-
.../ql/optimizer/IdentityProjectRemover.java | 2 +-
.../hadoop/hive/ql/optimizer/JoinReorder.java | 2 +-
.../ql/optimizer/LimitPushdownOptimizer.java | 7 +-
.../hive/ql/optimizer/MapJoinFactory.java | 10 +-
.../hive/ql/optimizer/MapJoinProcessor.java | 2 +-
.../ql/optimizer/NonBlockingOpDeDupProc.java | 2 +-
.../hadoop/hive/ql/optimizer/Optimizer.java | 4 +-
.../ql/optimizer/PartitionColumnsSeparator.java | 2 +-
.../hive/ql/optimizer/PointLookupOptimizer.java | 2 +-
.../hadoop/hive/ql/optimizer/SamplePruner.java | 2 +-
.../ql/optimizer/SimpleFetchAggregation.java | 2 +-
.../hive/ql/optimizer/SimpleFetchOptimizer.java | 32 +-
.../hive/ql/optimizer/SkewJoinOptimizer.java | 8 +-
.../optimizer/SortedDynPartitionOptimizer.java | 2 +-
.../SortedMergeBucketMapJoinOptimizer.java | 2 +-
.../hive/ql/optimizer/StatsOptimizer.java | 2 +-
.../hadoop/hive/ql/optimizer/Transform.java | 20 +-
.../ql/optimizer/calcite/HiveCalciteUtil.java | 98 +
.../calcite/HiveDefaultRelMetadataProvider.java | 2 +
.../ql/optimizer/calcite/HiveRelFactories.java | 206 +
.../ql/optimizer/calcite/RelOptHiveTable.java | 9 +-
.../hive/ql/optimizer/calcite/TraitsUtil.java | 4 +
.../calcite/reloperators/HiveAggregate.java | 20 -
.../calcite/reloperators/HiveFilter.java | 16 -
.../calcite/reloperators/HiveJoin.java | 31 +-
.../calcite/reloperators/HiveProject.java | 41 +-
.../calcite/reloperators/HiveSemiJoin.java | 18 -
.../calcite/reloperators/HiveSortLimit.java | 21 +-
.../calcite/reloperators/HiveTableScan.java | 46 +-
.../calcite/reloperators/HiveUnion.java | 14 -
.../rules/HiveAggregateJoinTransposeRule.java | 23 +-
.../rules/HiveAggregateProjectMergeRule.java | 3 +-
.../rules/HiveExpandDistinctAggregatesRule.java | 18 +-
.../rules/HiveFilterAggregateTransposeRule.java | 45 +
.../calcite/rules/HiveFilterJoinRule.java | 14 +-
.../rules/HiveFilterProjectTSTransposeRule.java | 113 +
.../calcite/rules/HiveJoinAddNotNullRule.java | 3 +-
.../rules/HiveJoinProjectTransposeRule.java | 36 +-
.../HiveJoinPushTransitivePredicatesRule.java | 44 +-
.../calcite/rules/HiveJoinToMultiJoinRule.java | 8 +-
.../calcite/rules/HivePartitionPruneRule.java | 2 +-
.../calcite/rules/HivePreFilteringRule.java | 174 +-
.../calcite/rules/HiveProjectMergeRule.java | 4 +-
.../calcite/rules/HiveRelFieldTrimmer.java | 17 +-
.../calcite/rules/HiveSortJoinReduceRule.java | 5 +-
.../calcite/rules/HiveWindowingFixRule.java | 4 +-
.../stats/FilterSelectivityEstimator.java | 48 +
.../calcite/stats/HiveRelMdPredicates.java | 645 +
.../calcite/translator/ASTBuilder.java | 5 +-
.../calcite/translator/ASTConverter.java | 11 +-
.../calcite/translator/HiveOpConverter.java | 14 +-
.../translator/HiveOpConverterPostProc.java | 8 +-
.../translator/SqlFunctionConverter.java | 3 +-
.../correlation/CorrelationOptimizer.java | 2 +-
.../correlation/ReduceSinkDeDuplication.java | 2 +-
.../ql/optimizer/index/RewriteGBUsingIndex.java | 24 +-
.../RewriteQueryUsingAggregateIndexCtx.java | 13 +-
.../ql/optimizer/lineage/ExprProcFactory.java | 35 +-
.../hive/ql/optimizer/lineage/Generator.java | 2 +-
.../ListBucketingPruner.java | 2 +-
.../annotation/AnnotateWithOpTraits.java | 2 +-
.../pcr/PartitionConditionRemover.java | 2 +-
.../ql/optimizer/pcr/PcrExprProcFactory.java | 31 +-
.../physical/CommonJoinTaskDispatcher.java | 3 +-
.../physical/GenMRSkewJoinProcessor.java | 17 +-
.../physical/GenSparkSkewJoinProcessor.java | 21 +-
.../ql/optimizer/physical/SerializeFilter.java | 24 +-
.../physical/SortMergeJoinTaskDispatcher.java | 5 +-
.../ppr/PartitionExpressionForMetastore.java | 12 +-
.../hive/ql/optimizer/ppr/PartitionPruner.java | 2 +-
.../spark/SparkSortMergeJoinFactory.java | 6 -
.../optimizer/spark/SplitSparkWorkResolver.java | 4 +-
.../annotation/AnnotateWithStatistics.java | 2 +-
.../stats/annotation/StatsRulesProcFactory.java | 62 +-
.../ql/optimizer/unionproc/UnionProcessor.java | 2 +-
.../hadoop/hive/ql/parse/CalcitePlanner.java | 216 +-
.../hive/ql/parse/ColumnAccessAnalyzer.java | 36 +-
.../hadoop/hive/ql/parse/GenTezUtils.java | 20 +-
.../hadoop/hive/ql/parse/GlobalLimitCtx.java | 10 +-
.../org/apache/hadoop/hive/ql/parse/HiveLexer.g | 1 +
.../apache/hadoop/hive/ql/parse/HiveParser.g | 5 +-
.../hadoop/hive/ql/parse/IdentifiersParser.g | 2 +-
.../hadoop/hive/ql/parse/MapReduceCompiler.java | 3 +-
.../hadoop/hive/ql/parse/ParseContext.java | 9 +-
.../hadoop/hive/ql/parse/QBParseInfo.java | 20 +-
.../hadoop/hive/ql/parse/SemanticAnalyzer.java | 64 +-
.../hadoop/hive/ql/parse/TezCompiler.java | 8 +-
.../ql/parse/UpdateDeleteSemanticAnalyzer.java | 21 +-
.../ql/parse/spark/GenSparkProcContext.java | 5 +-
.../hive/ql/parse/spark/GenSparkUtils.java | 18 +-
.../hive/ql/parse/spark/SparkCompiler.java | 5 +-
.../hive/ql/parse/spark/SplitOpTreeForDPP.java | 6 +-
.../hive/ql/plan/AbstractOperatorDesc.java | 4 -
.../hadoop/hive/ql/plan/AggregationDesc.java | 4 -
.../hadoop/hive/ql/plan/ExprNodeDescUtils.java | 8 +
.../apache/hadoop/hive/ql/plan/LimitDesc.java | 19 +
.../hadoop/hive/ql/plan/LoadFileDesc.java | 3 -
.../hadoop/hive/ql/plan/LoadMultiFilesDesc.java | 3 -
.../org/apache/hadoop/hive/ql/plan/MapWork.java | 2 +-
.../org/apache/hadoop/hive/ql/plan/PTFDesc.java | 22 +-
.../apache/hadoop/hive/ql/plan/PlanUtils.java | 9 +-
.../hadoop/hive/ql/plan/TableScanDesc.java | 4 -
.../hive/ql/plan/ptf/PTFExpressionDef.java | 4 -
.../hadoop/hive/ql/plan/ptf/ShapeDetails.java | 4 -
.../hadoop/hive/ql/ppd/PredicatePushDown.java | 2 +-
.../ql/ppd/PredicateTransitivePropagate.java | 2 +-
.../hive/ql/ppd/SyntheticJoinPredicate.java | 2 +-
.../authorization/AuthorizationUtils.java | 50 +-
.../DefaultHiveAuthorizationTranslator.java | 81 +
.../plugin/HiveAuthorizationTranslator.java | 46 +
.../authorization/plugin/HiveAuthorizer.java | 26 +-
.../plugin/HiveAuthorizerImpl.java | 26 +-
.../authorization/plugin/HiveV1Authorizer.java | 18 +-
.../hadoop/hive/ql/session/SessionState.java | 9 +-
.../apache/hadoop/hive/ql/stats/StatsUtils.java | 20 +-
.../hive/ql/stats/fs/FSStatsAggregator.java | 14 +-
.../hive/ql/stats/fs/FSStatsPublisher.java | 14 +-
.../ql/udf/generic/GenericUDAFFirstValue.java | 12 +-
.../ql/udf/generic/GenericUDAFLastValue.java | 9 +-
.../hive/ql/udf/generic/GenericUDAFMax.java | 14 +-
.../generic/GenericUDAFStreamingEvaluator.java | 28 +-
.../hive/ql/udf/generic/GenericUDFLeadLag.java | 5 -
.../hive/ql/udf/ptf/TableFunctionEvaluator.java | 4 -
.../hive/ql/udf/ptf/WindowingTableFunction.java | 18 +-
.../hadoop/hive/ql/util/JavaDataModel.java | 335 -
.../hadoop/hive/ql/io/orc/orc_proto.proto | 220 -
.../hive/metastore/TestMetastoreExpr.java | 10 +-
.../apache/hadoop/hive/ql/exec/TestPlan.java | 8 +-
.../hadoop/hive/ql/exec/TestUtilities.java | 20 +-
.../ql/exec/vector/util/OrcFileGenerator.java | 2 +-
.../hive/ql/io/orc/TestBitFieldReader.java | 145 -
.../hadoop/hive/ql/io/orc/TestBitPack.java | 316 -
.../hive/ql/io/orc/TestColumnStatistics.java | 11 +-
.../hadoop/hive/ql/io/orc/TestDynamicArray.java | 87 -
.../hadoop/hive/ql/io/orc/TestFileDump.java | 25 +-
.../hadoop/hive/ql/io/orc/TestInStream.java | 313 -
.../hive/ql/io/orc/TestInputOutputFormat.java | 14 +-
.../ql/io/orc/TestIntegerCompressionReader.java | 129 -
.../hadoop/hive/ql/io/orc/TestJsonFileDump.java | 1 +
.../hive/ql/io/orc/TestMemoryManager.java | 132 -
.../hive/ql/io/orc/TestNewIntegerEncoding.java | 12 +-
.../hadoop/hive/ql/io/orc/TestOrcFile.java | 72 +-
.../hive/ql/io/orc/TestOrcNullOptimization.java | 7 +
.../hive/ql/io/orc/TestOrcRawRecordMerger.java | 21 +-
.../hive/ql/io/orc/TestOrcSerDeStats.java | 7 +
.../hive/ql/io/orc/TestOrcSplitElimination.java | 40 +-
.../hive/ql/io/orc/TestRecordReaderImpl.java | 7 +-
.../hive/ql/io/orc/TestRunLengthByteReader.java | 142 -
.../ql/io/orc/TestRunLengthIntegerReader.java | 124 -
.../hive/ql/io/orc/TestSerializationUtils.java | 164 -
.../hadoop/hive/ql/io/orc/TestStreamName.java | 2 +
.../hive/ql/io/orc/TestStringDictionary.java | 7 +-
.../hive/ql/io/orc/TestStringRedBlackTree.java | 288 -
.../hive/ql/io/orc/TestTypeDescription.java | 1 +
.../hive/ql/io/orc/TestUnrolledBitPack.java | 1 +
.../hive/ql/io/orc/TestVectorOrcFile.java | 38 +-
.../hive/ql/io/orc/TestVectorizedORCReader.java | 1 -
.../apache/hadoop/hive/ql/io/orc/TestZlib.java | 55 -
.../io/parquet/TestParquetRowGroupFilter.java | 27 +-
.../ql/io/sarg/TestConvertAstToSearchArg.java | 35 +-
.../hive/ql/lockmgr/TestDbTxnManager.java | 41 +-
.../zookeeper/TestZookeeperLockManager.java | 29 +-
.../hadoop/hive/ql/parse/TestGenTezWork.java | 19 +-
.../queries/clientnegative/invalid_select_fn.q | 1 +
.../clientpositive/cast_qualified_types.q | 2 -
.../test/queries/clientpositive/decimal_stats.q | 16 +
.../clientpositive/index_auto_mult_tables.q | 12 +-
.../index_auto_mult_tables_compact.q | 12 +-
.../queries/clientpositive/index_auto_update.q | 2 +
.../test/queries/clientpositive/index_in_db.q | 3 +
.../test/queries/clientpositive/index_stale.q | 1 +
.../clientpositive/index_stale_partitioned.q | 1 +
.../clientpositive/limit_join_transpose.q | 17 +
.../test/queries/clientpositive/offset_limit.q | 25 +
.../offset_limit_global_optimizer.q | 45 +
.../clientpositive/offset_limit_ppd_optimizer.q | 80 +
.../queries/clientpositive/orc_ppd_exception.q | 14 +
.../clientpositive/parquet_type_promotion.q | 5 +
.../test/queries/clientpositive/perf/query12.q | 1 +
.../test/queries/clientpositive/perf/query13.q | 54 +
.../test/queries/clientpositive/perf/query15.q | 1 +
.../test/queries/clientpositive/perf/query17.q | 1 +
.../test/queries/clientpositive/perf/query18.q | 1 +
.../test/queries/clientpositive/perf/query19.q | 1 +
.../test/queries/clientpositive/perf/query20.q | 1 +
.../test/queries/clientpositive/perf/query21.q | 26 +
.../test/queries/clientpositive/perf/query22.q | 1 +
.../test/queries/clientpositive/perf/query25.q | 1 +
.../test/queries/clientpositive/perf/query26.q | 1 +
.../test/queries/clientpositive/perf/query27.q | 1 +
.../test/queries/clientpositive/perf/query28.q | 52 +
.../test/queries/clientpositive/perf/query29.q | 1 +
.../test/queries/clientpositive/perf/query3.q | 1 +
.../test/queries/clientpositive/perf/query31.q | 2 +
.../test/queries/clientpositive/perf/query32.q | 19 +
.../test/queries/clientpositive/perf/query34.q | 2 +
.../test/queries/clientpositive/perf/query39.q | 2 +
.../test/queries/clientpositive/perf/query40.q | 1 +
.../test/queries/clientpositive/perf/query42.q | 1 +
.../test/queries/clientpositive/perf/query43.q | 1 +
.../test/queries/clientpositive/perf/query45.q | 1 +
.../test/queries/clientpositive/perf/query46.q | 1 +
.../test/queries/clientpositive/perf/query48.q | 2 +
.../test/queries/clientpositive/perf/query50.q | 58 +
.../test/queries/clientpositive/perf/query51.q | 42 +
.../test/queries/clientpositive/perf/query52.q | 1 +
.../test/queries/clientpositive/perf/query54.q | 1 +
.../test/queries/clientpositive/perf/query55.q | 1 +
.../test/queries/clientpositive/perf/query58.q | 47 +
.../test/queries/clientpositive/perf/query64.q | 2 +
.../test/queries/clientpositive/perf/query65.q | 38 +
.../test/queries/clientpositive/perf/query66.q | 219 +
.../test/queries/clientpositive/perf/query67.q | 44 +
.../test/queries/clientpositive/perf/query68.q | 1 +
.../test/queries/clientpositive/perf/query7.q | 1 +
.../test/queries/clientpositive/perf/query70.q | 1 +
.../test/queries/clientpositive/perf/query71.q | 2 +
.../test/queries/clientpositive/perf/query72.q | 1 +
.../test/queries/clientpositive/perf/query73.q | 2 +
.../test/queries/clientpositive/perf/query75.q | 1 +
.../test/queries/clientpositive/perf/query76.q | 1 +
.../test/queries/clientpositive/perf/query79.q | 1 +
.../test/queries/clientpositive/perf/query80.q | 1 +
.../test/queries/clientpositive/perf/query82.q | 1 +
.../test/queries/clientpositive/perf/query84.q | 1 +
.../test/queries/clientpositive/perf/query85.q | 1 +
.../test/queries/clientpositive/perf/query87.q | 1 +
.../test/queries/clientpositive/perf/query88.q | 92 +
.../test/queries/clientpositive/perf/query89.q | 27 +
.../test/queries/clientpositive/perf/query90.q | 2 +
.../test/queries/clientpositive/perf/query91.q | 2 +
.../test/queries/clientpositive/perf/query92.q | 1 +
.../test/queries/clientpositive/perf/query93.q | 1 +
.../test/queries/clientpositive/perf/query94.q | 1 +
.../test/queries/clientpositive/perf/query95.q | 1 +
.../test/queries/clientpositive/perf/query96.q | 1 +
.../test/queries/clientpositive/perf/query97.q | 1 +
.../test/queries/clientpositive/perf/query98.q | 2 +
ql/src/test/queries/clientpositive/semijoin3.q | 28 +
.../special_character_in_tabnames_1.q | 26 +-
.../queries/clientpositive/udf_classloader.q | 16 +
..._classloader_dynamic_dependency_resolution.q | 16 +
..._after_multiple_inserts_special_characters.q | 25 +
.../clientpositive/vector_when_case_null.q | 14 +
.../clientpositive/vectorization_offset_limit.q | 10 +
.../clientpositive/windowing_windowspec4.q | 19 +
.../resources/orc-file-dump-bloomfilter.out | 2 +-
.../resources/orc-file-dump-bloomfilter2.out | 2 +-
.../orc-file-dump-dictionary-threshold.out | 2 +-
ql/src/test/resources/orc-file-dump.json | 2 +-
ql/src/test/resources/orc-file-dump.out | 2 +-
ql/src/test/resources/orc-file-has-null.out | 2 +-
.../bucket_mapjoin_mismatch1.q.out | 28 +-
.../clientnegative/invalid_select_fn.q.out | 1 +
.../sortmerge_mapjoin_mismatch_1.q.out | 10 +-
.../results/clientnegative/udf_invalid.q.out | 2 +-
.../clientpositive/allcolref_in_udf.q.out | 14 +-
.../results/clientpositive/ambiguous_col.q.out | 54 +-
.../clientpositive/annotate_stats_join.q.out | 8 +-
.../annotate_stats_join_pkfk.q.out | 61 +-
.../archive_excludeHadoop20.q.out | 1 -
.../results/clientpositive/archive_multi.q.out | 1 -
.../results/clientpositive/auto_join1.q.out | 14 +-
.../results/clientpositive/auto_join10.q.out | 12 +-
.../results/clientpositive/auto_join12.q.out | 66 +-
.../results/clientpositive/auto_join13.q.out | 10 +-
.../results/clientpositive/auto_join15.q.out | 12 +-
.../results/clientpositive/auto_join16.q.out | 18 +-
.../results/clientpositive/auto_join17.q.out | 14 +-
.../results/clientpositive/auto_join19.q.out | 14 +-
.../results/clientpositive/auto_join2.q.out | 24 +-
.../results/clientpositive/auto_join22.q.out | 18 +-
.../results/clientpositive/auto_join24.q.out | 10 +-
.../results/clientpositive/auto_join26.q.out | 20 +-
.../results/clientpositive/auto_join3.q.out | 18 +-
.../results/clientpositive/auto_join30.q.out | 64 +-
.../results/clientpositive/auto_join33.q.out | 16 +-
.../results/clientpositive/auto_join4.q.out | 4 +-
.../results/clientpositive/auto_join5.q.out | 4 +-
.../results/clientpositive/auto_join8.q.out | 18 +-
.../results/clientpositive/auto_join9.q.out | 14 +-
.../auto_join_reordering_values.q.out | 10 +-
.../clientpositive/auto_join_stats.q.out | 106 +-
.../clientpositive/auto_join_stats2.q.out | 46 +-
.../auto_join_without_localtask.q.out | 148 +-
.../clientpositive/auto_smb_mapjoin_14.q.out | 72 +-
.../clientpositive/auto_sortmerge_join_1.q.out | 20 +-
.../clientpositive/auto_sortmerge_join_11.q.out | 22 +-
.../clientpositive/auto_sortmerge_join_12.q.out | 12 +-
.../clientpositive/auto_sortmerge_join_13.q.out | 6 +-
.../clientpositive/auto_sortmerge_join_2.q.out | 24 +-
.../clientpositive/auto_sortmerge_join_3.q.out | 28 +-
.../clientpositive/auto_sortmerge_join_4.q.out | 28 +-
.../clientpositive/auto_sortmerge_join_5.q.out | 28 +-
.../clientpositive/auto_sortmerge_join_6.q.out | 128 +-
.../clientpositive/auto_sortmerge_join_7.q.out | 28 +-
.../clientpositive/auto_sortmerge_join_8.q.out | 28 +-
.../clientpositive/auto_sortmerge_join_9.q.out | 204 +-
.../clientpositive/bucket_map_join_spark1.q.out | 28 +-
.../clientpositive/bucket_map_join_spark2.q.out | 28 +-
.../clientpositive/bucket_map_join_spark3.q.out | 28 +-
.../clientpositive/bucket_map_join_spark4.q.out | 40 +-
.../clientpositive/bucketcontext_1.q.out | 8 +-
.../clientpositive/bucketcontext_2.q.out | 8 +-
.../clientpositive/bucketcontext_3.q.out | 8 +-
.../clientpositive/bucketcontext_4.q.out | 8 +-
.../clientpositive/bucketcontext_5.q.out | 8 +-
.../clientpositive/bucketcontext_6.q.out | 8 +-
.../clientpositive/bucketcontext_7.q.out | 8 +-
.../clientpositive/bucketcontext_8.q.out | 8 +-
.../bucketizedhiveinputformat.q.out | 2 -
.../results/clientpositive/bucketmapjoin1.q.out | 20 +-
.../clientpositive/bucketmapjoin10.q.out | 6 +-
.../clientpositive/bucketmapjoin11.q.out | 12 +-
.../clientpositive/bucketmapjoin12.q.out | 12 +-
.../clientpositive/bucketmapjoin13.q.out | 24 +-
.../results/clientpositive/bucketmapjoin2.q.out | 30 +-
.../results/clientpositive/bucketmapjoin3.q.out | 20 +-
.../results/clientpositive/bucketmapjoin4.q.out | 20 +-
.../results/clientpositive/bucketmapjoin5.q.out | 20 +-
.../results/clientpositive/bucketmapjoin7.q.out | 12 +-
.../results/clientpositive/bucketmapjoin8.q.out | 12 +-
.../results/clientpositive/bucketmapjoin9.q.out | 12 +-
.../clientpositive/bucketmapjoin_negative.q.out | 10 +-
.../bucketmapjoin_negative2.q.out | 10 +-
.../bucketmapjoin_negative3.q.out | 90 +-
.../bucketsortoptimize_insert_2.q.out | 56 +-
.../bucketsortoptimize_insert_4.q.out | 30 +-
.../bucketsortoptimize_insert_5.q.out | 40 +-
.../bucketsortoptimize_insert_6.q.out | 114 +-
.../bucketsortoptimize_insert_7.q.out | 12 +-
.../bucketsortoptimize_insert_8.q.out | 8 +-
.../clientpositive/cbo_rp_auto_join1.q.out | 396 +-
.../clientpositive/cbo_rp_auto_join17.q.out | 14 +-
.../cbo_rp_cross_product_check_2.q.out | 56 +-
.../clientpositive/cbo_rp_lineage2.q.out | 8 +-
.../results/clientpositive/cbo_udf_max.q.out | 4 +-
.../clientpositive/column_access_stats.q.out | 52 +-
.../clientpositive/constprog_partitioner.q.out | 44 +-
.../clientpositive/correlationoptimizer1.q.out | 190 +-
.../clientpositive/correlationoptimizer10.q.out | 176 +-
.../clientpositive/correlationoptimizer11.q.out | 72 +-
.../clientpositive/correlationoptimizer12.q.out | 16 +-
.../clientpositive/correlationoptimizer13.q.out | 42 +-
.../clientpositive/correlationoptimizer14.q.out | 234 +-
.../clientpositive/correlationoptimizer15.q.out | 60 +-
.../clientpositive/correlationoptimizer2.q.out | 104 +-
.../clientpositive/correlationoptimizer3.q.out | 220 +-
.../clientpositive/correlationoptimizer4.q.out | 74 +-
.../clientpositive/correlationoptimizer5.q.out | 110 +-
.../clientpositive/correlationoptimizer6.q.out | 616 +-
.../clientpositive/correlationoptimizer7.q.out | 104 +-
.../clientpositive/correlationoptimizer8.q.out | 34 +-
.../clientpositive/correlationoptimizer9.q.out | 120 +-
.../results/clientpositive/cross_join.q.out | 28 +-
.../clientpositive/cross_product_check_1.q.out | 66 +-
.../clientpositive/cross_product_check_2.q.out | 54 +-
.../results/clientpositive/decimal_join2.q.out | 36 +-
.../results/clientpositive/decimal_stats.q.out | 106 +
.../results/clientpositive/decimal_udf.q.out | 12 +-
.../clientpositive/dynamic_rdd_cache.q.out | 34 +-
.../encryption_join_unencrypted_tbl.q.out | 20 +-
...on_join_with_different_encryption_keys.q.out | 16 +-
.../clientpositive/explain_logical.q.out | 198 +-
.../clientpositive/filter_cond_pushdown.q.out | 241 +-
.../clientpositive/filter_join_breaktask.q.out | 32 +-
.../clientpositive/groupby_join_pushdown.q.out | 320 +-
.../groupby_multi_single_reducer3.q.out | 16 +-
.../clientpositive/groupby_position.q.out | 30 +-
.../clientpositive/groupby_sort_1_23.q.out | 46 +-
.../clientpositive/groupby_sort_skew_1_23.q.out | 50 +-
.../test/results/clientpositive/having2.q.out | 66 +-
.../identity_project_remove_skip.q.out | 10 +-
.../clientpositive/index_auto_mult_tables.q.out | 170 +-
.../index_auto_mult_tables_compact.q.out | 148 +-
.../clientpositive/index_auto_self_join.q.out | 58 +-
.../clientpositive/index_auto_update.q.out | 6 +
.../results/clientpositive/index_bitmap3.q.out | 30 +-
.../clientpositive/index_bitmap_auto.q.out | 30 +-
.../index_bitmap_auto_partitioned.q.out | 6 +-
.../index_bitmap_compression.q.out | 6 +-
.../results/clientpositive/index_in_db.q.out | 12 +
.../results/clientpositive/index_stale.q.out | 6 +
.../index_stale_partitioned.q.out | 6 +
.../infer_bucket_sort_map_operators.q.out | 22 +-
.../test/results/clientpositive/innerjoin.q.out | 18 +-
.../test/results/clientpositive/input39.q.out | 10 +-
.../results/clientpositive/input_part9.q.out | 4 +-
.../clientpositive/input_testxpath2.q.out | 6 +-
.../clientpositive/input_testxpath4.q.out | 12 +-
ql/src/test/results/clientpositive/join1.q.out | 18 +-
ql/src/test/results/clientpositive/join10.q.out | 18 +-
ql/src/test/results/clientpositive/join12.q.out | 65 +-
ql/src/test/results/clientpositive/join13.q.out | 16 +-
ql/src/test/results/clientpositive/join15.q.out | 18 +-
ql/src/test/results/clientpositive/join16.q.out | 20 +-
ql/src/test/results/clientpositive/join17.q.out | 18 +-
ql/src/test/results/clientpositive/join2.q.out | 32 +-
ql/src/test/results/clientpositive/join22.q.out | 28 +-
ql/src/test/results/clientpositive/join25.q.out | 10 +-
ql/src/test/results/clientpositive/join26.q.out | 12 +-
ql/src/test/results/clientpositive/join27.q.out | 10 +-
ql/src/test/results/clientpositive/join28.q.out | 22 +-
ql/src/test/results/clientpositive/join29.q.out | 42 +-
ql/src/test/results/clientpositive/join3.q.out | 24 +-
ql/src/test/results/clientpositive/join30.q.out | 16 +-
ql/src/test/results/clientpositive/join31.q.out | 40 +-
ql/src/test/results/clientpositive/join32.q.out | 22 +-
.../clientpositive/join32_lessSize.q.out | 124 +-
ql/src/test/results/clientpositive/join33.q.out | 22 +-
ql/src/test/results/clientpositive/join34.q.out | 4 +-
ql/src/test/results/clientpositive/join35.q.out | 4 +-
ql/src/test/results/clientpositive/join36.q.out | 10 +-
ql/src/test/results/clientpositive/join37.q.out | 10 +-
ql/src/test/results/clientpositive/join40.q.out | 32 +-
ql/src/test/results/clientpositive/join42.q.out | 77 +-
ql/src/test/results/clientpositive/join43.q.out | 66 +-
ql/src/test/results/clientpositive/join8.q.out | 16 +-
ql/src/test/results/clientpositive/join9.q.out | 18 +-
.../clientpositive/join_alt_syntax.q.out | 144 +-
.../clientpositive/join_cond_pushdown_1.q.out | 86 +-
.../clientpositive/join_cond_pushdown_2.q.out | 74 +-
.../clientpositive/join_cond_pushdown_3.q.out | 86 +-
.../clientpositive/join_cond_pushdown_4.q.out | 74 +-
.../join_cond_pushdown_unqual1.q.out | 24 +-
.../join_cond_pushdown_unqual2.q.out | 44 +-
.../join_cond_pushdown_unqual3.q.out | 24 +-
.../join_cond_pushdown_unqual4.q.out | 44 +-
.../clientpositive/join_grp_diff_keys.q.out | 8 +-
.../results/clientpositive/join_map_ppr.q.out | 24 +-
.../join_merge_multi_expressions.q.out | 20 +-
.../results/clientpositive/join_nullsafe.q.out | 36 +-
.../clientpositive/join_on_varchar.q.out | 14 +-
.../results/clientpositive/join_parse.q.out | 130 +-
.../test/results/clientpositive/join_rc.q.out | 18 +-
.../results/clientpositive/join_reorder.q.out | 24 +-
.../test/results/clientpositive/join_star.q.out | 54 +-
.../results/clientpositive/join_thrift.q.out | 14 +-
.../test/results/clientpositive/join_vc.q.out | 30 +-
.../clientpositive/lateral_view_cp.q.out | 24 +-
.../clientpositive/limit_join_transpose.q.out | 48 +
.../results/clientpositive/limit_pushdown.q.out | 14 +-
.../limit_pushdown_negative.q.out | 14 +-
.../test/results/clientpositive/lineage2.q.out | 18 +-
.../test/results/clientpositive/lineage3.q.out | 20 +-
.../list_bucket_query_oneskew_2.q.out | 2 +-
.../llap/bucket_map_join_tez1.q.out | 341 +-
.../llap/bucket_map_join_tez2.q.out | 135 +-
.../llap/dynamic_partition_pruning.q.out | 259 +-
.../llap/dynamic_partition_pruning_2.q.out | 21 +-
.../llap/hybridgrace_hashjoin_1.q.out | 97 +-
.../llap/hybridgrace_hashjoin_2.q.out | 128 +-
.../clientpositive/llap/lvj_mapjoin.q.out | 56 +-
.../clientpositive/llap/mapjoin_decimal.q.out | 18 +-
.../results/clientpositive/llap/mergejoin.q.out | 1614 +-
.../test/results/clientpositive/llap/mrr.q.out | 130 +-
.../llap/tez_bmj_schema_evolution.q.out | 18 +-
.../llap/tez_dynpart_hashjoin_1.q.out | 120 +-
.../llap/tez_dynpart_hashjoin_2.q.out | 118 +-
.../clientpositive/llap/tez_join_hash.q.out | 145 +-
.../llap/tez_join_result_complex.q.out | 64 +-
.../clientpositive/llap/tez_self_join.q.out | 28 +-
.../results/clientpositive/llap/tez_smb_1.q.out | 64 +-
.../clientpositive/llap/tez_smb_main.q.out | 207 +-
.../results/clientpositive/llap/tez_union.q.out | 172 +-
.../llap/tez_vector_dynpart_hashjoin_1.q.out | 120 +-
.../llap/tez_vector_dynpart_hashjoin_2.q.out | 122 +-
.../vectorized_dynamic_partition_pruning.q.out | 259 +-
.../llap/vectorized_nested_mapjoin.q.out | 66 +-
.../clientpositive/llap_uncompressed.q.out | 6 +-
.../clientpositive/louter_join_ppr.q.out | 28 +-
.../clientpositive/mapjoin_distinct.q.out | 60 +-
.../clientpositive/mapjoin_mapjoin.q.out | 60 +-
.../clientpositive/mapjoin_memcheck.q.out | 12 +-
.../clientpositive/mapjoin_subquery.q.out | 44 +-
.../test/results/clientpositive/mergejoin.q.out | 210 +-
.../results/clientpositive/mergejoins.q.out | 38 +-
.../clientpositive/mergejoins_mixed.q.out | 266 +-
.../results/clientpositive/metadataonly1.q.out | 8 +-
.../results/clientpositive/multiMapJoin1.q.out | 384 +-
.../results/clientpositive/multiMapJoin2.q.out | 324 +-
.../clientpositive/multi_join_union.q.out | 26 +-
.../results/clientpositive/nonmr_fetch.q.out | 16 +-
.../results/clientpositive/offset_limit.q.out | 257 +
.../offset_limit_global_optimizer.q.out | 3390 +++
.../offset_limit_ppd_optimizer.q.out | 1377 ++
.../results/clientpositive/orc_file_dump.q.out | 6 +-
.../test/results/clientpositive/orc_llap.q.out | 52 +-
.../results/clientpositive/orc_merge10.q.out | 4 +-
.../results/clientpositive/orc_merge11.q.out | 6 +-
.../clientpositive/orc_ppd_exception.q.out | 49 +
.../clientpositive/orc_predicate_pushdown.q.out | 32 +-
.../results/clientpositive/parallel_join1.q.out | 18 +-
.../results/clientpositive/parquet_join.q.out | 36 +-
.../parquet_predicate_pushdown.q.out | 32 +-
.../clientpositive/parquet_type_promotion.q.out | 27 +-
ql/src/test/results/clientpositive/pcr.q.out | 40 +-
.../results/clientpositive/perf/query12.q.out | 129 +
.../results/clientpositive/perf/query13.q.out | 300 +
.../results/clientpositive/perf/query15.q.out | 153 +
.../results/clientpositive/perf/query17.q.out | 264 +
.../results/clientpositive/perf/query18.q.out | 236 +
.../results/clientpositive/perf/query19.q.out | 207 +
.../results/clientpositive/perf/query20.q.out | 138 +
.../results/clientpositive/perf/query21.q.out | 201 +
.../results/clientpositive/perf/query22.q.out | 148 +
.../results/clientpositive/perf/query25.q.out | 264 +
.../results/clientpositive/perf/query26.q.out | 174 +
.../results/clientpositive/perf/query27.q.out | 178 +
.../results/clientpositive/perf/query28.q.out | 357 +
.../results/clientpositive/perf/query29.q.out | 264 +
.../results/clientpositive/perf/query3.q.out | 119 +
.../results/clientpositive/perf/query31.q.out | 641 +
.../results/clientpositive/perf/query32.q.out | 205 +
.../results/clientpositive/perf/query34.q.out | 177 +
.../results/clientpositive/perf/query39.q.out | 313 +
.../results/clientpositive/perf/query40.q.out | 177 +
.../results/clientpositive/perf/query42.q.out | 117 +
.../results/clientpositive/perf/query43.q.out | 118 +
.../results/clientpositive/perf/query45.q.out | 210 +
.../results/clientpositive/perf/query46.q.out | 241 +
.../results/clientpositive/perf/query48.q.out | 160 +
.../results/clientpositive/perf/query50.q.out | 287 +
.../results/clientpositive/perf/query51.q.out | 283 +
.../results/clientpositive/perf/query52.q.out | 118 +
.../results/clientpositive/perf/query54.q.out | 314 +
.../results/clientpositive/perf/query55.q.out | 118 +
.../results/clientpositive/perf/query58.q.out | 602 +
.../results/clientpositive/perf/query64.q.out | 1192 +
.../results/clientpositive/perf/query65.q.out | 315 +
.../results/clientpositive/perf/query66.q.out | 796 +
.../results/clientpositive/perf/query67.q.out | 249 +
.../results/clientpositive/perf/query68.q.out | 241 +
.../results/clientpositive/perf/query7.q.out | 174 +
.../results/clientpositive/perf/query70.q.out | 268 +
.../results/clientpositive/perf/query71.q.out | 242 +
.../results/clientpositive/perf/query72.q.out | 352 +
.../results/clientpositive/perf/query73.q.out | 177 +
.../results/clientpositive/perf/query75.q.out | 719 +
.../results/clientpositive/perf/query76.q.out | 284 +
.../results/clientpositive/perf/query79.q.out | 181 +
.../results/clientpositive/perf/query80.q.out | 602 +
.../results/clientpositive/perf/query82.q.out | 127 +
.../results/clientpositive/perf/query84.q.out | 171 +
.../results/clientpositive/perf/query85.q.out | 275 +
.../results/clientpositive/perf/query87.q.out | 334 +
.../results/clientpositive/perf/query88.q.out | 1157 +
.../results/clientpositive/perf/query89.q.out | 224 +
.../results/clientpositive/perf/query90.q.out | 260 +
.../results/clientpositive/perf/query91.q.out | 232 +
.../results/clientpositive/perf/query92.q.out | 160 +
.../results/clientpositive/perf/query93.q.out | 117 +
.../results/clientpositive/perf/query94.q.out | 228 +
.../results/clientpositive/perf/query95.q.out | 275 +
.../results/clientpositive/perf/query96.q.out | 135 +
.../results/clientpositive/perf/query97.q.out | 163 +
.../results/clientpositive/perf/query98.q.out | 135 +
.../results/clientpositive/pointlookup2.q.out | 40 +-
.../results/clientpositive/pointlookup3.q.out | 40 +-
.../test/results/clientpositive/ppd_gby.q.out | 49 +-
.../test/results/clientpositive/ppd_gby2.q.out | 55 +-
.../results/clientpositive/ppd_gby_join.q.out | 96 +-
.../test/results/clientpositive/ppd_join.q.out | 86 +-
.../test/results/clientpositive/ppd_join2.q.out | 133 +-
.../test/results/clientpositive/ppd_join3.q.out | 155 +-
.../test/results/clientpositive/ppd_join5.q.out | 10 +-
.../clientpositive/ppd_join_filter.q.out | 130 +-
.../clientpositive/ppd_multi_insert.q.out | 68 +-
.../clientpositive/ppd_outer_join2.q.out | 66 +-
.../clientpositive/ppd_outer_join3.q.out | 66 +-
.../clientpositive/ppd_outer_join4.q.out | 223 +-
.../clientpositive/ppd_outer_join5.q.out | 231 +-
.../results/clientpositive/ppd_random.q.out | 16 +-
.../clientpositive/ppd_repeated_alias.q.out | 2 +-
.../results/clientpositive/ppd_udf_case.q.out | 59 +-
.../results/clientpositive/ppd_udf_col.q.out | 178 +-
.../test/results/clientpositive/ppd_union.q.out | 42 +-
.../results/clientpositive/ppd_union_view.q.out | 34 +-
ql/src/test/results/clientpositive/ppd_vc.q.out | 30 +-
ql/src/test/results/clientpositive/ptf.q.out | 72 +-
.../results/clientpositive/ptf_streaming.q.out | 58 +-
.../results/clientpositive/ptfgroupbyjoin.q.out | 44 +-
.../results/clientpositive/quotedid_basic.q.out | 12 +-
.../clientpositive/quotedid_partition.q.out | 4 +-
.../reduce_deduplicate_exclude_join.q.out | 12 +-
.../reduce_deduplicate_extended.q.out | 86 +-
.../test/results/clientpositive/regex_col.q.out | 22 +-
.../clientpositive/router_join_ppr.q.out | 30 +-
.../runtime_skewjoin_mapjoin_spark.q.out | 58 +-
.../test/results/clientpositive/sample8.q.out | 46 +-
.../clientpositive/select_transform_hint.q.out | 24 +-
.../test/results/clientpositive/semijoin.q.out | 272 +-
.../test/results/clientpositive/semijoin3.q.out | 156 +
.../test/results/clientpositive/skewjoin.q.out | 259 +-
.../clientpositive/skewjoin_mapjoin10.q.out | 32 +-
.../clientpositive/skewjoin_mapjoin6.q.out | 48 +-
.../clientpositive/skewjoin_noskew.q.out | 18 +-
.../clientpositive/skewjoin_onesideskew.q.out | 18 +-
.../results/clientpositive/skewjoinopt10.q.out | 52 +-
.../results/clientpositive/skewjoinopt12.q.out | 8 +-
.../results/clientpositive/skewjoinopt15.q.out | 40 +-
.../results/clientpositive/skewjoinopt16.q.out | 8 +-
.../results/clientpositive/skewjoinopt17.q.out | 8 +-
.../results/clientpositive/skewjoinopt18.q.out | 14 +-
.../results/clientpositive/skewjoinopt2.q.out | 16 +-
.../results/clientpositive/smb_mapjoin9.q.out | 2 +-
.../results/clientpositive/smb_mapjoin_1.q.out | 2 +-
.../results/clientpositive/smb_mapjoin_10.q.out | 2 +-
.../results/clientpositive/smb_mapjoin_11.q.out | 2 +-
.../results/clientpositive/smb_mapjoin_12.q.out | 4 +-
.../results/clientpositive/smb_mapjoin_13.q.out | 14 +-
.../results/clientpositive/smb_mapjoin_14.q.out | 18 +-
.../results/clientpositive/smb_mapjoin_15.q.out | 18 +-
.../results/clientpositive/smb_mapjoin_16.q.out | 2 +-
.../results/clientpositive/smb_mapjoin_17.q.out | 2 +-
.../results/clientpositive/smb_mapjoin_2.q.out | 4 +-
.../results/clientpositive/smb_mapjoin_25.q.out | 105 +-
.../results/clientpositive/smb_mapjoin_3.q.out | 2 +-
.../results/clientpositive/smb_mapjoin_4.q.out | 2 +-
.../results/clientpositive/smb_mapjoin_6.q.out | 4 +-
.../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 | 6 +-
.../clientpositive/sort_merge_join_desc_5.q.out | 2 +-
.../clientpositive/sort_merge_join_desc_6.q.out | 6 +-
.../clientpositive/sort_merge_join_desc_7.q.out | 6 +-
.../clientpositive/sort_merge_join_desc_8.q.out | 6 +-
.../spark/annotate_stats_join.q.out | 8 +-
.../clientpositive/spark/auto_join1.q.out | 14 +-
.../clientpositive/spark/auto_join10.q.out | 12 +-
.../clientpositive/spark/auto_join12.q.out | 73 +-
.../clientpositive/spark/auto_join13.q.out | 10 +-
.../clientpositive/spark/auto_join15.q.out | 12 +-
.../clientpositive/spark/auto_join16.q.out | 14 +-
.../clientpositive/spark/auto_join17.q.out | 14 +-
.../clientpositive/spark/auto_join19.q.out | 14 +-
.../clientpositive/spark/auto_join2.q.out | 98 +-
.../clientpositive/spark/auto_join22.q.out | 18 +-
.../clientpositive/spark/auto_join24.q.out | 10 +-
.../clientpositive/spark/auto_join26.q.out | 20 +-
.../clientpositive/spark/auto_join3.q.out | 18 +-
.../clientpositive/spark/auto_join30.q.out | 38 +-
.../clientpositive/spark/auto_join8.q.out | 14 +-
.../clientpositive/spark/auto_join9.q.out | 14 +-
.../spark/auto_join_reordering_values.q.out | 10 +-
.../clientpositive/spark/auto_join_stats.q.out | 58 +-
.../clientpositive/spark/auto_join_stats2.q.out | 46 +-
.../spark/auto_join_without_localtask.q.out | 68 +-
.../spark/auto_smb_mapjoin_14.q.out | 126 +-
.../spark/auto_sortmerge_join_1.q.out | 18 +-
.../spark/auto_sortmerge_join_12.q.out | 12 +-
.../spark/auto_sortmerge_join_13.q.out | 44 +-
.../spark/auto_sortmerge_join_2.q.out | 16 +-
.../spark/auto_sortmerge_join_3.q.out | 22 +-
.../spark/auto_sortmerge_join_4.q.out | 22 +-
.../spark/auto_sortmerge_join_5.q.out | 22 +-
.../spark/auto_sortmerge_join_6.q.out | 144 +-
.../spark/auto_sortmerge_join_7.q.out | 22 +-
.../spark/auto_sortmerge_join_8.q.out | 22 +-
.../spark/auto_sortmerge_join_9.q.out | 220 +-
.../spark/bucket_map_join_spark1.q.out | 28 +-
.../spark/bucket_map_join_spark2.q.out | 28 +-
.../spark/bucket_map_join_spark3.q.out | 28 +-
.../spark/bucket_map_join_spark4.q.out | 140 +-
.../spark/bucket_map_join_tez1.q.out | 361 +-
.../spark/bucket_map_join_tez2.q.out | 185 +-
.../spark/bucketizedhiveinputformat.q.out | 2 -
.../clientpositive/spark/bucketmapjoin1.q.out | 20 +-
.../clientpositive/spark/bucketmapjoin10.q.out | 6 +-
.../clientpositive/spark/bucketmapjoin11.q.out | 12 +-
.../clientpositive/spark/bucketmapjoin12.q.out | 12 +-
.../clientpositive/spark/bucketmapjoin13.q.out | 24 +-
.../clientpositive/spark/bucketmapjoin2.q.out | 30 +-
.../clientpositive/spark/bucketmapjoin3.q.out | 20 +-
.../clientpositive/spark/bucketmapjoin4.q.out | 20 +-
.../clientpositive/spark/bucketmapjoin5.q.out | 20 +-
.../clientpositive/spark/bucketmapjoin7.q.out | 12 +-
.../clientpositive/spark/bucketmapjoin8.q.out | 12 +-
.../clientpositive/spark/bucketmapjoin9.q.out | 12 +-
.../spark/bucketmapjoin_negative.q.out | 10 +-
.../spark/bucketmapjoin_negative2.q.out | 10 +-
.../spark/bucketmapjoin_negative3.q.out | 90 +-
.../spark/bucketsortoptimize_insert_2.q.out | 108 +-
.../spark/bucketsortoptimize_insert_4.q.out | 30 +-
.../spark/bucketsortoptimize_insert_6.q.out | 154 +-
.../spark/bucketsortoptimize_insert_7.q.out | 54 +-
.../spark/bucketsortoptimize_insert_8.q.out | 36 +-
.../spark/column_access_stats.q.out | 52 +-
.../spark/constprog_partitioner.q.out | 44 +-
.../clientpositive/spark/cross_join.q.out | 28 +-
.../spark/cross_product_check_1.q.out | 66 +-
.../spark/cross_product_check_2.q.out | 48 +-
.../spark/dynamic_rdd_cache.q.out | 34 +-
.../spark/filter_join_breaktask.q.out | 28 +-
.../spark/groupby_multi_single_reducer3.q.out | 16 +-
.../clientpositive/spark/groupby_position.q.out | 32 +-
.../spark/groupby_sort_1_23.q.out | 46 +-
.../spark/groupby_sort_skew_1_23.q.out | 50 +-
.../spark/identity_project_remove_skip.q.out | 8 +-
.../spark/index_auto_self_join.q.out | 42 +-
.../clientpositive/spark/index_bitmap3.q.out | 30 +-
.../spark/index_bitmap_auto.q.out | 30 +-
.../spark/infer_bucket_sort_map_operators.q.out | 38 +-
.../infer_bucket_sort_reducers_power_two.q.out | 8 +-
.../clientpositive/spark/innerjoin.q.out | 18 +-
.../results/clientpositive/spark/join1.q.out | 18 +-
.../results/clientpositive/spark/join10.q.out | 18 +-
.../results/clientpositive/spark/join12.q.out | 51 +-
.../results/clientpositive/spark/join13.q.out | 16 +-
.../results/clientpositive/spark/join15.q.out | 18 +-
.../results/clientpositive/spark/join16.q.out | 20 +-
.../results/clientpositive/spark/join17.q.out | 18 +-
.../results/clientpositive/spark/join2.q.out | 32 +-
.../results/clientpositive/spark/join22.q.out | 22 +-
.../results/clientpositive/spark/join25.q.out | 10 +-
.../results/clientpositive/spark/join26.q.out | 12 +-
.../results/clientpositive/spark/join27.q.out | 10 +-
.../results/clientpositive/spark/join28.q.out | 22 +-
.../results/clientpositive/spark/join29.q.out | 26 +-
.../results/clientpositive/spark/join3.q.out | 24 +-
.../results/clientpositive/spark/join30.q.out | 16 +-
.../results/clientpositive/spark/join31.q.out | 28 +-
.../results/clientpositive/spark/join32.q.out | 22 +-
.../clientpositive/spark/join32_lessSize.q.out | 138 +-
.../results/clientpositive/spark/join33.q.out | 22 +-
.../results/clientpositive/spark/join34.q.out | 6 +-
.../results/clientpositive/spark/join35.q.out | 6 +-
.../results/clientpositive/spark/join36.q.out | 10 +-
.../results/clientpositive/spark/join37.q.out | 10 +-
.../results/clientpositive/spark/join40.q.out | 32 +-
.../results/clientpositive/spark/join8.q.out | 16 +-
.../results/clientpositive/spark/join9.q.out | 18 +-
.../clientpositive/spark/join_alt_syntax.q.out | 144 +-
.../spark/join_cond_pushdown_1.q.out | 86 +-
.../spark/join_cond_pushdown_2.q.out | 74 +-
.../spark/join_cond_pushdown_3.q.out | 86 +-
.../spark/join_cond_pushdown_4.q.out | 74 +-
.../spark/join_cond_pushdown_unqual1.q.out | 24 +-
.../spark/join_cond_pushdown_unqual2.q.out | 44 +-
.../spark/join_cond_pushdown_unqual3.q.out | 24 +-
.../spark/join_cond_pushdown_unqual4.q.out | 44 +-
.../clientpositive/spark/join_map_ppr.q.out | 24 +-
.../spark/join_merge_multi_expressions.q.out | 20 +-
.../clientpositive/spark/join_nullsafe.q.out | 36 +-
.../results/clientpositive/spark/join_rc.q.out | 18 +-
.../clientpositive/spark/join_reorder.q.out | 24 +-
.../clientpositive/spark/join_star.q.out | 54 +-
.../clientpositive/spark/join_thrift.q.out | 14 +-
.../results/clientpositive/spark/join_vc.q.out | 30 +-
.../clientpositive/spark/limit_pushdown.q.out | 14 +-
.../clientpositive/spark/louter_join_ppr.q.out | 18 +-
.../clientpositive/spark/mapjoin_decimal.q.out | 16 +-
.../clientpositive/spark/mapjoin_distinct.q.out | 60 +-
.../clientpositive/spark/mapjoin_mapjoin.q.out | 158 +-
.../clientpositive/spark/mapjoin_memcheck.q.out | 12 +-
.../clientpositive/spark/mapjoin_subquery.q.out | 44 +-
.../clientpositive/spark/mergejoins.q.out | 38 +-
.../clientpositive/spark/mergejoins_mixed.q.out | 266 +-
.../clientpositive/spark/multi_join_union.q.out | 28 +-
.../clientpositive/spark/parallel_join1.q.out | 18 +-
.../clientpositive/spark/parquet_join.q.out | 42 +-
.../test/results/clientpositive/spark/pcr.q.out | 40 +-
.../clientpositive/spark/ppd_gby_join.q.out | 96 +-
.../results/clientpositive/spark/ppd_join.q.out | 86 +-
.../clientpositive/spark/ppd_join2.q.out | 133 +-
.../clientpositive/spark/ppd_join3.q.out | 153 +-
.../clientpositive/spark/ppd_join5.q.out | 10 +-
.../clientpositive/spark/ppd_join_filter.q.out | 130 +-
.../clientpositive/spark/ppd_multi_insert.q.out | 68 +-
.../clientpositive/spark/ppd_outer_join2.q.out | 66 +-
.../clientpositive/spark/ppd_outer_join3.q.out | 66 +-
.../clientpositive/spark/ppd_outer_join4.q.out | 211 +-
.../clientpositive/spark/ppd_outer_join5.q.out | 207 +-
.../test/results/clientpositive/spark/ptf.q.out | 72 +-
.../clientpositive/spark/ptf_streaming.q.out | 58 +-
.../spark/reduce_deduplicate_exclude_join.q.out | 12 +-
.../clientpositive/spark/router_join_ppr.q.out | 20 +-
.../spark/runtime_skewjoin_mapjoin_spark.q.out | 26 +-
.../results/clientpositive/spark/sample8.q.out | 46 +-
.../results/clientpositive/spark/semijoin.q.out | 272 +-
.../results/clientpositive/spark/skewjoin.q.out | 283 +-
.../clientpositive/spark/skewjoin_noskew.q.out | 18 +-
.../clientpositive/spark/skewjoinopt10.q.out | 48 +-
.../clientpositive/spark/skewjoinopt12.q.out | 8 +-
.../clientpositive/spark/skewjoinopt15.q.out | 32 +-
.../clientpositive/spark/skewjoinopt16.q.out | 8 +-
.../clientpositive/spark/skewjoinopt17.q.out | 8 +-
.../clientpositive/spark/skewjoinopt18.q.out | 14 +-
.../clientpositive/spark/skewjoinopt2.q.out | 16 +-
.../clientpositive/spark/smb_mapjoin_1.q.out | 14 +-
.../clientpositive/spark/smb_mapjoin_10.q.out | 8 +-
.../clientpositive/spark/smb_mapjoin_11.q.out | 12 +-
.../clientpositive/spark/smb_mapjoin_12.q.out | 24 +-
.../clientpositive/spark/smb_mapjoin_13.q.out | 22 +-
.../clientpositive/spark/smb_mapjoin_14.q.out | 52 +-
.../clientpositive/spark/smb_mapjoin_15.q.out | 42 +-
.../clientpositive/spark/smb_mapjoin_16.q.out | 4 +-
.../clientpositive/spark/smb_mapjoin_17.q.out | 4 +-
.../clientpositive/spark/smb_mapjoin_2.q.out | 16 +-
.../clientpositive/spark/smb_mapjoin_25.q.out | 83 +-
.../clientpositive/spark/smb_mapjoin_3.q.out | 14 +-
.../clientpositive/spark/smb_mapjoin_4.q.out | 8 +-
.../clientpositive/spark/smb_mapjoin_5.q.out | 6 +-
.../clientpositive/spark/smb_mapjoin_6.q.out | 16 +-
.../clientpositive/spark/subquery_exists.q.out | 22 +-
.../clientpositive/spark/subquery_in.q.out | 145 +-
.../spark/subquery_multiinsert.q.java1.7.out | 14 +-
.../spark/table_access_keys_stats.q.out | 37 +-
.../clientpositive/spark/temp_table_join1.q.out | 54 +-
.../results/clientpositive/spark/union26.q.out | 28 +-
.../results/clientpositive/spark/union32.q.out | 80 +-
.../results/clientpositive/spark/union34.q.out | 44 +-
.../clientpositive/spark/union_top_level.q.out | 16 +-
.../spark/vector_decimal_mapjoin.q.out | 12 +-
.../spark/vector_mapjoin_reduce.q.out | 166 +-
.../spark/vectorization_short_regress.q.out | 18 +-
.../spark/vectorized_mapjoin.q.out | 12 +-
.../spark/vectorized_nested_mapjoin.q.out | 32 +-
.../clientpositive/spark/vectorized_ptf.q.out | 72 +-
.../spark/vectorized_shufflejoin.q.out | 16 +-
.../test/results/clientpositive/stats11.q.out | 20 +-
.../subq_where_serialization.q.out | 30 +-
.../clientpositive/subquery_exists.q.out | 22 +-
.../clientpositive/subquery_exists_having.q.out | 44 +-
.../results/clientpositive/subquery_in.q.out | 145 +-
.../clientpositive/subquery_in_having.q.out | 118 +-
.../subquery_multiinsert.q.java1.7.out | 14 +-
.../results/clientpositive/subquery_notin.q.out | 16 +-
.../subquery_notin_having.q.java1.7.out | 6 +-
.../subquery_unqual_corr_expr.q.out | 16 +-
.../subquery_unqualcolumnrefs.q.out | 142 +-
.../results/clientpositive/subquery_views.q.out | 26 +-
.../table_access_keys_stats.q.out | 37 +-
.../clientpositive/temp_table_join1.q.out | 54 +-
.../results/clientpositive/tez/auto_join1.q.out | 16 +-
.../clientpositive/tez/auto_join30.q.out | 50 +-
.../tez/auto_sortmerge_join_1.q.out | 18 +-
.../tez/auto_sortmerge_join_11.q.out | 26 +-
.../tez/auto_sortmerge_join_12.q.out | 12 +-
.../tez/auto_sortmerge_join_13.q.out | 54 +-
.../tez/auto_sortmerge_join_2.q.out | 28 +-
.../tez/auto_sortmerge_join_3.q.out | 42 +-
.../tez/auto_sortmerge_join_4.q.out | 42 +-
.../tez/auto_sortmerge_join_5.q.out | 34 +-
.../tez/auto_sortmerge_join_6.q.out | 192 +-
.../tez/auto_sortmerge_join_7.q.out | 42 +-
.../tez/auto_sortmerge_join_8.q.out | 42 +-
.../tez/auto_sortmerge_join_9.q.out | 268 +-
.../tez/bucket_map_join_tez1.q.out | 339 +-
.../tez/bucket_map_join_tez2.q.out | 133 +-
.../tez/correlationoptimizer1.q.out | 208 +-
.../results/clientpositive/tez/cross_join.q.out | 30 +-
.../tez/cross_product_check_1.q.out | 66 +-
.../tez/cross_product_check_2.q.out | 54 +-
.../tez/dynamic_partition_pruning.q.out | 226 +-
.../tez/dynamic_partition_pruning_2.q.out | 21 +-
.../clientpositive/tez/explainuser_1.q.out | 1502 +-
.../clientpositive/tez/explainuser_2.q.out | 3195 ++-
.../clientpositive/tez/explainuser_3.q.out | 34 +-
.../tez/filter_join_breaktask.q.out | 28 +-
.../tez/hybridgrace_hashjoin_1.q.out | 97 +-
.../tez/hybridgrace_hashjoin_2.q.out | 128 +-
.../test/results/clientpositive/tez/join1.q.out | 18 +-
.../clientpositive/tez/join_nullsafe.q.out | 36 +-
.../clientpositive/tez/limit_pushdown.q.out | 14 +-
.../clientpositive/tez/lvj_mapjoin.q.out | 56 +-
.../clientpositive/tez/mapjoin_decimal.q.out | 18 +-
.../clientpositive/tez/mapjoin_mapjoin.q.out | 74 +-
.../results/clientpositive/tez/mergejoin.q.out | 202 +-
.../test/results/clientpositive/tez/mrr.q.out | 130 +-
.../clientpositive/tez/orc_merge10.q.out | 4 +-
.../clientpositive/tez/orc_merge11.q.out | 6 +-
.../test/results/clientpositive/tez/ptf.q.out | 72 +-
.../clientpositive/tez/ptf_streaming.q.out | 58 +-
.../results/clientpositive/tez/skewjoin.q.out | 109 +-
.../clientpositive/tez/subquery_exists.q.out | 22 +-
.../clientpositive/tez/subquery_in.q.out | 145 +-
.../tez/tez_bmj_schema_evolution.q.out | 18 +-
.../tez/tez_dynpart_hashjoin_1.q.out | 120 +-
.../tez/tez_dynpart_hashjoin_2.q.out | 118 +-
.../clientpositive/tez/tez_join_hash.q.out | 144 +-
.../tez/tez_join_result_complex.q.out | 64 +-
.../clientpositive/tez/tez_self_join.q.out | 28 +-
.../results/clientpositive/tez/tez_smb_1.q.out | 64 +-
.../clientpositive/tez/tez_smb_empty.q.out | 116 +-
.../clientpositive/tez/tez_smb_main.q.out | 206 +-
.../results/clientpositive/tez/tez_union.q.out | 172 +-
.../tez/tez_vector_dynpart_hashjoin_1.q.out | 120 +-
.../tez/tez_vector_dynpart_hashjoin_2.q.out | 120 +-
.../clientpositive/tez/unionDistinct_1.q.out | 190 +-
.../tez/vector_auto_smb_mapjoin_14.q.out | 300 +-
.../tez/vector_binary_join_groupby.q.out | 14 +-
.../tez/vector_char_mapjoin1.q.out | 56 +-
.../tez/vector_decimal_expressions.q.out | 8 +-
.../tez/vector_decimal_mapjoin.q.out | 14 +-
.../clientpositive/tez/vector_decimal_udf.q.out | 18 +-
.../clientpositive/tez/vector_if_expr.q.out | 10 +-
.../tez/vector_interval_mapjoin.q.out | 24 +-
.../clientpositive/tez/vector_join30.q.out | 50 +-
.../tez/vector_join_part_col_char.q.out | 22 +-
.../tez/vector_leftsemi_mapjoin.q.out | 1500 +-
.../tez/vector_mapjoin_reduce.q.out | 133 +-
.../tez/vector_nullsafe_join.q.out | 64 +-
.../tez/vector_reduce_groupby_decimal.q.out | 12 +-
.../tez/vector_select_null2.q.out | 95 +
.../tez/vector_varchar_mapjoin1.q.out | 56 +-
.../tez/vector_when_case_null.q.out | 97 +
.../clientpositive/tez/vectorization_8.q.out | 16 +-
.../tez/vectorization_limit.q.out | 22 +-
.../tez/vectorization_short_regress.q.out | 18 +-
.../tez/vectorized_bucketmapjoin1.q.out | 42 +-
.../clientpositive/tez/vectorized_context.q.out | 26 +-
.../vectorized_dynamic_partition_pruning.q.out | 226 +-
.../clientpositive/tez/vectorized_mapjoin.q.out | 14 +-
.../tez/vectorized_nested_mapjoin.q.out | 66 +-
.../clientpositive/tez/vectorized_ptf.q.out | 72 +-
.../tez/vectorized_shufflejoin.q.out | 16 +-
.../udf_case_column_pruning.q.out | 20 +-
.../clientpositive/udf_classloader.q.out | 43 +
...ssloader_dynamic_dependency_resolution.q.out | 43 +
.../clientpositive/udf_isnull_isnotnull.q.out | 4 +-
.../test/results/clientpositive/udf_size.q.out | 4 +-
.../clientpositive/udtf_json_tuple.q.out | 26 +-
.../clientpositive/udtf_parse_url_tuple.q.out | 22 +-
.../test/results/clientpositive/union22.q.out | 6 +-
.../test/results/clientpositive/union26.q.out | 34 +-
.../test/results/clientpositive/union32.q.out | 96 +-
.../test/results/clientpositive/union34.q.out | 56 +-
.../clientpositive/unionDistinct_1.q.out | 214 +-
.../clientpositive/union_top_level.q.out | 32 +-
...er_multiple_inserts_special_characters.q.out | 78 +
.../vector_auto_smb_mapjoin_14.q.out | 72 +-
.../vector_binary_join_groupby.q.out | 12 +-
.../clientpositive/vector_char_mapjoin1.q.out | 50 +-
.../clientpositive/vector_decimal_cast.q.out | 4 +-
.../vector_decimal_expressions.q.out | 8 +-
.../clientpositive/vector_decimal_mapjoin.q.out | 12 +-
.../clientpositive/vector_decimal_udf.q.out | 18 +-
.../results/clientpositive/vector_if_expr.q.out | 10 +-
.../vector_interval_mapjoin.q.out | 22 +-
.../results/clientpositive/vector_join30.q.out | 64 +-
.../vector_leftsemi_mapjoin.q.out | 1356 +-
.../clientpositive/vector_mapjoin_reduce.q.out | 108 +-
.../clientpositive/vector_nullsafe_join.q.out | 48 +-
.../vector_reduce_groupby_decimal.q.out | 12 +-
.../vector_varchar_mapjoin1.q.out | 50 +-
.../clientpositive/vector_when_case_null.q.out | 90 +
.../clientpositive/vectorization_8.q.out | 16 +-
.../vectorization_decimal_date.q.out | 4 +-
.../clientpositive/vectorization_limit.q.out | 22 +-
.../vectorization_offset_limit.q.out | 118 +
.../vectorization_short_regress.q.out | 18 +-
.../vectorized_bucketmapjoin1.q.out | 6 +-
.../clientpositive/vectorized_context.q.out | 22 +-
.../clientpositive/vectorized_mapjoin.q.out | 12 +-
.../vectorized_nested_mapjoin.q.out | 36 +-
.../results/clientpositive/vectorized_ptf.q.out | 72 +-
.../clientpositive/vectorized_shufflejoin.q.out | 16 +-
.../clientpositive/windowing_windowspec4.q.out | 59 +
.../compiler/errors/unknown_function1.q.out | 2 +-
.../compiler/errors/unknown_function4.q.out | 2 +-
ql/src/test/templates/TestCliDriver.vm | 76 +-
ql/src/test/templates/TestCompareCliDriver.vm | 73 +-
ql/src/test/templates/TestNegativeCliDriver.vm | 74 +-
ql/src/test/templates/TestParseNegative.vm | 69 +-
ql/src/test/templates/TestPerfCliDriver.vm | 175 +
.../hadoop/hive/serde2/AbstractSerDe.java | 2 +-
.../hadoop/hive/serde2/io/DateWritable.java | 179 -
service/pom.xml | 14 +-
.../apache/hive/service/server/HiveServer2.java | 15 +
.../apache/hive/service/cli/CLIServiceTest.java | 127 +-
.../cli/session/TestSessionManagerMetrics.java | 23 +-
.../apache/hadoop/hive/shims/Hadoop23Shims.java | 9 -
.../apache/hadoop/hive/shims/ZeroCopyShims.java | 42 -
.../apache/hadoop/hive/shims/HadoopShims.java | 13 -
.../hive/thrift/HadoopThriftAuthBridge.java | 3 -
.../hadoop/hive/common/DiskRangeInfo.java | 59 +
.../hadoop/hive/ql/util/JavaDataModel.java | 335 +
.../hadoop/hive/serde2/io/DateWritable.java | 179 +
.../apache/hive/common/util/BloomFilter.java | 309 +
.../org/apache/hive/common/util/Murmur3.java | 335 +
.../apache/hive/common/util/TestMurmur3.java | 224 +
.../ptest2/src/main/resources/batch-exec.vm | 8 +-
1298 files changed, 92450 insertions(+), 60621 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/27a14d5a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------