From 14de00263b0dc8120e34a384bf3072625ec5c792 Mon Sep 17 00:00:00 2001 From: wecharyu Date: Sat, 9 Sep 2023 01:12:36 +0800 Subject: [PATCH] reduce a call of getMTable() --- .../hadoop/hive/metastore/HMSHandler.java | 2 -- .../hive/metastore/MetaStoreDirectSql.java | 7 ++++--- .../hadoop/hive/metastore/ObjectStore.java | 17 +++++++++-------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java index 117c65969916c..7100bf93ae159 100644 --- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java +++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java @@ -5857,8 +5857,6 @@ private void alter_partition_core(String catName, String db_name, String tbl_nam oldPart = alterHandler.alterPartition(getMS(), wh, catName, db_name, tbl_name, part_vals, new_part, envContext, this, validWriteIds); - // Only fetch the table if we actually have a listener - if (!listeners.isEmpty()) { MetaStoreListenerNotifier.notifyEvent(listeners, EventType.ALTER_PARTITION, diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java index 2e60988436b05..0070816029da6 100644 --- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java +++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreDirectSql.java @@ -102,6 +102,7 @@ import org.apache.hadoop.hive.metastore.model.MPartitionColumnPrivilege; import org.apache.hadoop.hive.metastore.model.MPartitionColumnStatistics; import org.apache.hadoop.hive.metastore.model.MPartitionPrivilege; +import org.apache.hadoop.hive.metastore.model.MTable; import org.apache.hadoop.hive.metastore.model.MTableColumnStatistics; import org.apache.hadoop.hive.metastore.model.MWMResourcePlan; import org.apache.hadoop.hive.metastore.parser.ExpressionTree; @@ -547,14 +548,14 @@ public void addPartitions(List parts, List * @return * @throws MetaException */ - public List alterPartitions(Table table, List partNames, - List newParts, String queryWriteIdList) throws MetaException { + public List alterPartitions(MTable table, List partNames, + List newParts, String queryWriteIdList) throws MetaException { List rows = Batchable.runBatched(batchSize, partNames, new Batchable() { @Override public List run(List input) throws Exception { String filter = "" + PARTITIONS + ".\"PART_NAME\" in (" + makeParams(input.size()) + ")"; List columns = Arrays.asList("\"PART_ID\"", "\"PART_NAME\"", "\"SD_ID\"", "\"WRITE_ID\""); - return getPartitionFieldsViaSqlFilter(table.getCatName(), table.getDbName(), + return getPartitionFieldsViaSqlFilter(table.getDatabase().getCatalogName(), table.getDatabase().getName(), table.getTableName(), columns, filter, input, Collections.emptyList(), null); } }); diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java index e968ec8bc7496..de88e482b716d 100644 --- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java +++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java @@ -5273,7 +5273,7 @@ public List alterPartitions(String catName, String dbName, String tbl try { openTransaction(); - Table table = ensureGetTable(catName, dbName, tblName); + MTable table = ensureGetMTable(catName, dbName, tblName); // Validate new parts: StorageDescriptor and SerDeInfo must be set in Partition. if (!TableType.VIRTUAL_VIEW.name().equals(table.getTableType())) { for (Partition newPart : newParts) { @@ -5286,9 +5286,10 @@ public List alterPartitions(String catName, String dbName, String tbl newParts.forEach(newPart -> newPart.setWriteId(writeId)); } + List partCols = convertToFieldSchemas(table.getPartitionKeys()); List partNames = new ArrayList<>(); for (List partVal : part_vals) { - partNames.add(Warehouse.makePartName(table.getPartitionKeys(), partVal)); + partNames.add(Warehouse.makePartName(partCols, partVal)); } results = new GetListHelper(catName, dbName, tblName, true, true) { @@ -5301,7 +5302,7 @@ protected List getSqlResult(GetHelper> ctx) @Override protected List getJdoResult(GetHelper> ctx) throws MetaException, InvalidObjectException { - return alterPartitionsViaJdo(catName, dbName, tblName, partNames, newParts, queryWriteIdList); + return alterPartitionsViaJdo(table, partNames, newParts, queryWriteIdList); } }.run(false); @@ -5318,12 +5319,12 @@ protected List getJdoResult(GetHelper> ctx) return results; } - private List alterPartitionsViaJdo(String catName, String dbName, String tblName, - List partNames, List newParts, String queryWriteIdList) + private List alterPartitionsViaJdo(MTable table, List partNames, + List newParts, String queryWriteIdList) throws MetaException, InvalidObjectException { - - MTable table = getMTable(catName, dbName, tblName); - + String catName = table.getDatabase().getCatalogName(); + String dbName = table.getDatabase().getName(); + String tblName = table.getTableName(); List results = new ArrayList<>(newParts.size()); List mPartitionList;