Skip to content

Commit 05db54f

Browse files
committed
Fix more test cases
1 parent badf0d0 commit 05db54f

4 files changed

Lines changed: 33 additions & 10 deletions

File tree

iceberg/iceberg-catalog/src/main/java/org/apache/iceberg/hive/HiveTableOperations.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ public class HiveTableOperations extends BaseMetastoreTableOperations
6969
private final long maxHiveTablePropertySize;
7070
private final int metadataRefreshMaxRetries;
7171
private final FileIO fileIO;
72+
7273
private final ClientPool<IMetaStoreClient, TException> metaClients;
7374

7475
protected HiveTableOperations(
@@ -122,6 +123,8 @@ protected void doRefresh() {
122123

123124
if ("iceberg".equals(HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_ICEBERG_MATERIALIZEDVIEW_METADATA_LOCATION))) {
124125
HiveOperationsBase.validateTableOrMVIsIceberg(table, fullName);
126+
} else {
127+
HiveOperationsBase.validateTableIsIceberg(table, fullName);
125128
}
126129

127130
metadataLocation = table.getParameters().get(METADATA_LOCATION_PROP);

ql/src/java/org/apache/hadoop/hive/ql/parse/RewriteSemanticAnalyzer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ private void validateTxnManager(Table mTable) throws SemanticException {
260260
* Assert it supports Acid write.
261261
*/
262262
protected void validateTargetTable(Table mTable) throws SemanticException {
263-
if (TableType.ALL_VIEWS.contains(mTable.getTTable())) {
263+
if (TableType.ALL_VIEWS.contains(mTable.getTableType())) {
264264
LOG.error("Table " + mTable.getFullyQualifiedName() + " is a view or materialized view");
265265
throw new SemanticException(ErrorMsg.UPDATE_DELETE_VIEW.getMsg());
266266
}

ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/metastore/HiveMetaStoreAuthorizer.java

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,29 +21,27 @@
2121
import org.apache.commons.collections4.CollectionUtils;
2222
import org.apache.hadoop.conf.Configuration;
2323
import org.apache.hadoop.hive.conf.HiveConf;
24-
import org.apache.hadoop.hive.metastore.MetaStoreFilterHook;
2524
import org.apache.hadoop.hive.metastore.HMSHandler;
25+
import org.apache.hadoop.hive.metastore.MetaStoreFilterHook;
2626
import org.apache.hadoop.hive.metastore.MetaStorePreEventListener;
2727
import org.apache.hadoop.hive.metastore.TableType;
28+
import org.apache.hadoop.hive.metastore.api.Catalog;
29+
import org.apache.hadoop.hive.metastore.api.Database;
2830
import org.apache.hadoop.hive.metastore.api.InvalidOperationException;
2931
import org.apache.hadoop.hive.metastore.api.MetaException;
3032
import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
33+
import org.apache.hadoop.hive.metastore.api.Partition;
34+
import org.apache.hadoop.hive.metastore.api.PartitionSpec;
3135
import org.apache.hadoop.hive.metastore.api.Table;
36+
import org.apache.hadoop.hive.metastore.api.TableMeta;
3237
import org.apache.hadoop.hive.metastore.events.PreAlterTableEvent;
3338
import org.apache.hadoop.hive.metastore.events.PreCreateTableEvent;
3439
import org.apache.hadoop.hive.metastore.events.PreDropTableEvent;
3540
import org.apache.hadoop.hive.metastore.events.PreEventContext;
3641
import org.apache.hadoop.hive.metastore.utils.MetaStoreServerUtils;
37-
import org.apache.hadoop.hive.metastore.api.Catalog;
38-
import org.apache.hadoop.hive.metastore.api.Database;
39-
import org.apache.hadoop.hive.metastore.api.Partition;
40-
import org.apache.hadoop.hive.metastore.api.PartitionSpec;
41-
import org.apache.hadoop.hive.metastore.api.TableMeta;
4242
import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils;
4343
import org.apache.hadoop.hive.ql.metadata.HiveUtils;
4444
import org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider;
45-
import static org.apache.hadoop.hive.ql.security.authorization.plugin.HivePrivilegeObjectUtils.TablePrivilegeLookup;
46-
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.*;
4745
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAccessControlException;
4846
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthorizer;
4947
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthorizerFactory;
@@ -53,6 +51,23 @@
5351
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveMetastoreClientFactoryImpl;
5452
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveOperationType;
5553
import org.apache.hadoop.hive.ql.security.authorization.plugin.HivePrivilegeObject;
54+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.AddPartitionEvent;
55+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.AlterDataConnectorEvent;
56+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.AlterDatabaseEvent;
57+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.AlterPartitionEvent;
58+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.AlterTableEvent;
59+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.CreateDataConnectorEvent;
60+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.CreateDatabaseEvent;
61+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.CreateFunctionEvent;
62+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.CreateTableEvent;
63+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.DropDataConnectorEvent;
64+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.DropDatabaseEvent;
65+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.DropFunctionEvent;
66+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.DropPartitionEvent;
67+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.DropTableEvent;
68+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.LoadPartitionDoneEvent;
69+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.ReadDatabaseEvent;
70+
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.events.ReadTableEvent;
5671
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.filtercontext.DataConnectorFilterContext;
5772
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.filtercontext.DatabaseFilterContext;
5873
import org.apache.hadoop.hive.ql.security.authorization.plugin.metastore.filtercontext.TableFilterContext;
@@ -71,6 +86,8 @@
7186
import java.util.Set;
7287
import java.util.stream.Collectors;
7388

89+
import static org.apache.hadoop.hive.ql.security.authorization.plugin.HivePrivilegeObjectUtils.TablePrivilegeLookup;
90+
7491
/**
7592
* HiveMetaStoreAuthorizer : Do authorization checks on MetaStore Events in MetaStorePreEventListener
7693
*/
@@ -706,7 +723,7 @@ private boolean skipAuthorization(HiveMetaStoreAuthzInfo authzContext) {
706723
private boolean isViewType(Table table) {
707724
String tableType = table.getTableType();
708725

709-
return TableType.ALL_VIEWS.contains(tableType);
726+
return TableType.ALL_VIEWS_STR.contains(tableType);
710727
}
711728

712729
private String getErrorMessage(PreEventContext preEventContext, String user) {

standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/TableType.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package org.apache.hadoop.hive.metastore;
2020

2121
import java.util.EnumSet;
22+
import java.util.Set;
2223

2324
/**
2425
* Typesafe enum for types of tables described by the metastore.
@@ -36,4 +37,6 @@ public enum TableType {
3637
public static final EnumSet<TableType> ALL_MATERIALIZED_VIEWS = EnumSet.of(MATERIALIZED_VIEW, EXTERNAL_MATERIALIZED_VIEW);
3738
public static final EnumSet<TableType> ALL_EXTERNAL = EnumSet.of(EXTERNAL_TABLE, EXTERNAL_MATERIALIZED_VIEW);
3839
public static final EnumSet<TableType> ALL_VIEWS = EnumSet.of(VIRTUAL_VIEW, MATERIALIZED_VIEW, EXTERNAL_MATERIALIZED_VIEW);
40+
41+
public static final Set<String> ALL_VIEWS_STR = Set.of(VIRTUAL_VIEW.name(), MATERIALIZED_VIEW.name(), EXTERNAL_MATERIALIZED_VIEW.name());
3942
}

0 commit comments

Comments
 (0)