From 76b25a642fa74630660b33920a484b3a563867f3 Mon Sep 17 00:00:00 2001 From: pratyakshsharma Date: Tue, 18 Jul 2023 12:28:07 +0530 Subject: [PATCH] Move buildInitialPrivilegeSet to MetastoreUtil Cherry-pick of https://github.com/trinodb/trino/pull/1061/commits/4b6297e5a5646c35bafd60dc39af8aadfef17c7e Co-authored-by: electrum --- .../presto/hive/metastore/MetastoreUtil.java | 20 +++++++++++++++++++ .../facebook/presto/hive/HiveMetadata.java | 16 +-------------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/MetastoreUtil.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/MetastoreUtil.java index b1118cfb6207e..1a82fea0555b6 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/MetastoreUtil.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/MetastoreUtil.java @@ -51,12 +51,14 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.StandardErrorCode; import com.facebook.presto.spi.TableNotFoundException; +import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.statistics.ColumnStatisticType; import com.google.common.base.CharMatcher; import com.google.common.base.Joiner; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.ImmutableSet; import com.google.common.primitives.Longs; import io.airlift.slice.Slice; @@ -101,8 +103,13 @@ import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.hive.HiveErrorCode.HIVE_FILESYSTEM_ERROR; import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_PARTITION_VALUE; +import static com.facebook.presto.hive.metastore.HivePrivilegeInfo.HivePrivilege.DELETE; +import static com.facebook.presto.hive.metastore.HivePrivilegeInfo.HivePrivilege.INSERT; +import static com.facebook.presto.hive.metastore.HivePrivilegeInfo.HivePrivilege.SELECT; +import static com.facebook.presto.hive.metastore.HivePrivilegeInfo.HivePrivilege.UPDATE; import static com.facebook.presto.hive.metastore.PrestoTableType.MANAGED_TABLE; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; +import static com.facebook.presto.spi.security.PrincipalType.USER; import static com.facebook.presto.spi.statistics.ColumnStatisticType.MAX_VALUE; import static com.facebook.presto.spi.statistics.ColumnStatisticType.MAX_VALUE_SIZE_IN_BYTES; import static com.facebook.presto.spi.statistics.ColumnStatisticType.MIN_VALUE; @@ -1001,4 +1008,17 @@ public static boolean isIcebergTable(Map tableParameters) { return ICEBERG_TABLE_TYPE_VALUE.equalsIgnoreCase(tableParameters.get(ICEBERG_TABLE_TYPE_NAME)); } + + public static PrincipalPrivileges buildInitialPrivilegeSet(String tableOwner) + { + PrestoPrincipal owner = new PrestoPrincipal(USER, tableOwner); + return new PrincipalPrivileges( + ImmutableMultimap.builder() + .put(tableOwner, new HivePrivilegeInfo(SELECT, true, owner, owner)) + .put(tableOwner, new HivePrivilegeInfo(INSERT, true, owner, owner)) + .put(tableOwner, new HivePrivilegeInfo(UPDATE, true, owner, owner)) + .put(tableOwner, new HivePrivilegeInfo(DELETE, true, owner, owner)) + .build(), + ImmutableMultimap.of()); + } } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java index 30e9aad55a099..e9458b5165ff0 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java @@ -31,7 +31,6 @@ import com.facebook.presto.hive.metastore.Database; import com.facebook.presto.hive.metastore.HiveColumnStatistics; import com.facebook.presto.hive.metastore.HivePrivilegeInfo; -import com.facebook.presto.hive.metastore.HivePrivilegeInfo.HivePrivilege; import com.facebook.presto.hive.metastore.MetastoreContext; import com.facebook.presto.hive.metastore.MetastoreUtil; import com.facebook.presto.hive.metastore.Partition; @@ -107,7 +106,6 @@ import com.google.common.collect.ImmutableBiMap; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSortedMap; import com.google.common.collect.Iterables; @@ -299,6 +297,7 @@ import static com.facebook.presto.hive.metastore.MetastoreUtil.PRESTO_MATERIALIZED_VIEW_FLAG; import static com.facebook.presto.hive.metastore.MetastoreUtil.PRESTO_QUERY_ID_NAME; import static com.facebook.presto.hive.metastore.MetastoreUtil.PRESTO_VIEW_FLAG; +import static com.facebook.presto.hive.metastore.MetastoreUtil.buildInitialPrivilegeSet; import static com.facebook.presto.hive.metastore.MetastoreUtil.extractPartitionValues; import static com.facebook.presto.hive.metastore.MetastoreUtil.getHiveSchema; import static com.facebook.presto.hive.metastore.MetastoreUtil.getMetastoreHeaders; @@ -1393,19 +1392,6 @@ private static Table buildTableObject( return tableBuilder.build(); } - private static PrincipalPrivileges buildInitialPrivilegeSet(String tableOwner) - { - PrestoPrincipal owner = new PrestoPrincipal(USER, tableOwner); - return new PrincipalPrivileges( - ImmutableMultimap.builder() - .put(tableOwner, new HivePrivilegeInfo(HivePrivilege.SELECT, true, owner, owner)) - .put(tableOwner, new HivePrivilegeInfo(HivePrivilege.INSERT, true, owner, owner)) - .put(tableOwner, new HivePrivilegeInfo(HivePrivilege.UPDATE, true, owner, owner)) - .put(tableOwner, new HivePrivilegeInfo(HivePrivilege.DELETE, true, owner, owner)) - .build(), - ImmutableMultimap.of()); - } - @Override public void addColumn(ConnectorSession session, ConnectorTableHandle tableHandle, ColumnMetadata column) {