Repository: hive Updated Branches: refs/heads/master e74eb354f -> b1a917c3a
HIVE-20499 : GetTablesOperation pull all the tables meta irrespective of auth. (Rajkumar Singh via Ashutosh Chauhan) Signed-off-by: Ashutosh Chauhan <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/b1a917c3 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/b1a917c3 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/b1a917c3 Branch: refs/heads/master Commit: b1a917c3a250280b374800f7fb0e07eb1aa17ce5 Parents: e74eb35 Author: Rajkumar Singh <[email protected]> Authored: Fri Sep 7 10:53:00 2018 -0700 Committer: Ashutosh Chauhan <[email protected]> Committed: Fri Sep 7 10:53:00 2018 -0700 ---------------------------------------------------------------------- .../plugin/AuthorizationMetaStoreFilterHook.java | 14 ++++++++++++++ .../metastore/DefaultMetaStoreFilterHookImpl.java | 2 +- .../hadoop/hive/metastore/MetaStoreFilterHook.java | 2 +- .../hadoop/hive/metastore/HiveMetaStoreClient.java | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/b1a917c3/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/AuthorizationMetaStoreFilterHook.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/AuthorizationMetaStoreFilterHook.java b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/AuthorizationMetaStoreFilterHook.java index ca4b667..f5b8b12 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/AuthorizationMetaStoreFilterHook.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/AuthorizationMetaStoreFilterHook.java @@ -19,6 +19,7 @@ package org.apache.hadoop.hive.ql.security.authorization.plugin; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import org.apache.hadoop.conf.Configuration; import org.slf4j.Logger; @@ -26,6 +27,7 @@ import org.slf4j.LoggerFactory; import org.apache.hadoop.hive.common.classification.InterfaceAudience.Private; import org.apache.hadoop.hive.metastore.DefaultMetaStoreFilterHookImpl; import org.apache.hadoop.hive.metastore.api.MetaException; +import org.apache.hadoop.hive.metastore.api.TableMeta; import org.apache.hadoop.hive.ql.security.authorization.plugin.HivePrivilegeObject.HivePrivilegeObjectType; import org.apache.hadoop.hive.ql.session.SessionState; @@ -99,5 +101,17 @@ public class AuthorizationMetaStoreFilterHook extends DefaultMetaStoreFilterHook return objs; } + @Override + public List<TableMeta> filterTableMetas(String catName,String dbName,List<TableMeta> tableMetas) throws MetaException { + List<String> tableNames = new ArrayList<>(); + for(TableMeta tableMeta: tableMetas){ + tableNames.add(tableMeta.getTableName()); + } + List<String> filteredTableNames = filterTableNames(catName,dbName,tableNames); + return tableMetas.stream() + .filter(e -> filteredTableNames.contains(e.getTableName())).collect(Collectors.toList()); + } + + } http://git-wip-us.apache.org/repos/asf/hive/blob/b1a917c3/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/DefaultMetaStoreFilterHookImpl.java ---------------------------------------------------------------------- diff --git a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/DefaultMetaStoreFilterHookImpl.java b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/DefaultMetaStoreFilterHookImpl.java index 4e1daba..36a82c5 100644 --- a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/DefaultMetaStoreFilterHookImpl.java +++ b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/DefaultMetaStoreFilterHookImpl.java @@ -54,7 +54,7 @@ public class DefaultMetaStoreFilterHookImpl implements MetaStoreFilterHook { } @Override - public List<TableMeta> filterTableMetas(List<TableMeta> tableMetas) throws MetaException { + public List<TableMeta> filterTableMetas(String catName, String dbName,List<TableMeta> tableMetas) throws MetaException { return tableMetas; } http://git-wip-us.apache.org/repos/asf/hive/blob/b1a917c3/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreFilterHook.java ---------------------------------------------------------------------- diff --git a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreFilterHook.java b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreFilterHook.java index f7a0cd0..2f48aed 100644 --- a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreFilterHook.java +++ b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreFilterHook.java @@ -93,7 +93,7 @@ public interface MetaStoreFilterHook { * @return filtered table metas * @throws MetaException something went wrong */ - List<TableMeta> filterTableMetas(List<TableMeta> tableMetas) throws MetaException; + List<TableMeta> filterTableMetas(String catName,String dbName,List<TableMeta> tableMetas) throws MetaException; /** * filter to given table object if applicable http://git-wip-us.apache.org/repos/asf/hive/blob/b1a917c3/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java ---------------------------------------------------------------------- diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java index c962ccc..df6d56b 100644 --- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java +++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java @@ -1961,7 +1961,7 @@ public class HiveMetaStoreClient implements IMetaStoreClient, AutoCloseable { @Override public List<TableMeta> getTableMeta(String catName, String dbPatterns, String tablePatterns, List<String> tableTypes) throws TException { - return filterHook.filterTableMetas(client.get_table_meta(prependCatalogToDbName( + return filterHook.filterTableMetas(catName,dbPatterns,client.get_table_meta(prependCatalogToDbName( catName, dbPatterns, conf), tablePatterns, tableTypes)); }
