commit 3b096fc5fee5d90b5f43de76e5a5fd29d2caa509 Author: Mithun RK Date: Wed Sep 6 16:26:00 2017 -0700 HIVE-17472: Drop-partition for multi-level partition fails, if data does not exist. diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java index 5812a1b..56eefbe 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java @@ -3581,8 +3581,10 @@ private static boolean isMustPurge(EnvironmentContext envContext, Table tbl) { } private void deleteParentRecursive(Path parent, int depth, boolean mustPurge) throws IOException, MetaException { - if (depth > 0 && parent != null && wh.isWritable(parent) && wh.isEmpty(parent)) { - wh.deleteDir(parent, true, mustPurge); + if (depth > 0 && parent != null && wh.isWritable(parent)) { + if (wh.isDir(parent) && wh.isEmpty(parent)) { + wh.deleteDir(parent, true, mustPurge); + } deleteParentRecursive(parent.getParent(), depth - 1, mustPurge); } }