diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java index dcfc2b5..a40ac44 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java @@ -2858,6 +2858,16 @@ public static boolean moveFile(final HiveConf conf, Path srcf, final Path destf, if (destIsSubDir) { FileStatus[] srcs = destFs.listStatus(srcf, FileUtils.HIDDEN_FILES_PATH_FILTER); + if (inheritPerms) { + try { + HdfsUtils.setFullFileStatus(conf, destStatus, destFs, destf, false); + } catch (IOException e) { + String msg = "Error setting permission of file " + destf; + LOG.error(msg); + throw new HiveException(msg, e); + } + } + List> futures = new LinkedList<>(); final ExecutorService pool = Executors.newFixedThreadPool( conf.getIntVar(ConfVars.HIVE_MOVE_FILES_THREAD_COUNT),