xushiyan commented on a change in pull request #5147:
URL: https://github.com/apache/hudi/pull/5147#discussion_r837106047



##########
File path: 
hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/ddl/HMSDDLExecutor.java
##########
@@ -238,8 +236,11 @@ public void dropPartitionsToTable(String tableName, 
List<String> partitionsToDro
     LOG.info("Drop partitions " + partitionsToDrop.size() + " on " + 
tableName);
     try {
       for (String dropPartition : partitionsToDrop) {
-        String partitionClause = 
HivePartitionUtil.getPartitionClauseForDrop(dropPartition, 
partitionValueExtractor, syncConfig);
-        client.dropPartition(syncConfig.databaseName, tableName, 
partitionClause, false);
+        String partitionClause =
+            HivePartitionUtil.getPartitionClauseForDrop(dropPartition, 
partitionValueExtractor, syncConfig);
+        if (HivePartitionUtil.partitionExists(client, tableName, 
dropPartition, partitionValueExtractor, syncConfig)) {
+          client.dropPartition(syncConfig.databaseName, tableName, 
partitionClause, false);
+        }

Review comment:
       you only need to `getPartitionClauseForDrop` if partition exists right?

##########
File path: 
hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/util/HivePartitionUtil.java
##########
@@ -48,4 +49,16 @@ public static String getPartitionClauseForDrop(String 
partition, PartitionValueE
     }
     return String.join("/", partBuilder);
   }
+
+  public static Boolean partitionExists(IMetaStoreClient client, String 
tableName, String dropPartition,

Review comment:
       `dropPartition` this name is not appropriate in context of this method

##########
File path: 
hudi-sync/hudi-hive-sync/src/main/java/org/apache/hudi/hive/ddl/HiveQueryDDLExecutor.java
##########
@@ -137,8 +135,12 @@ public void dropPartitionsToTable(String tableName, 
List<String> partitionsToDro
     LOG.info("Drop partitions " + partitionsToDrop.size() + " on " + 
tableName);
     try {
       for (String dropPartition : partitionsToDrop) {
-        String partitionClause = 
HivePartitionUtil.getPartitionClauseForDrop(dropPartition, 
partitionValueExtractor, config);
-        metaStoreClient.dropPartition(config.databaseName, tableName, 
partitionClause, false);
+        String partitionClause =
+            HivePartitionUtil.getPartitionClauseForDrop(dropPartition, 
partitionValueExtractor, config);
+        if (HivePartitionUtil.partitionExists(metaStoreClient, tableName, 
dropPartition, partitionValueExtractor,
+            config)) {
+          metaStoreClient.dropPartition(config.databaseName, tableName, 
partitionClause, false);

Review comment:
       ditto




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to