diff --git ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java index ef35f1a..083ea88 100644 --- ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java +++ ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java @@ -39,6 +39,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.FileUtil; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.conf.HiveConf.ConfVars; @@ -613,6 +614,11 @@ public String add_resource(ResourceType t, String value) { public String add_resource(ResourceType t, String value, boolean convertToUnix) { try { value = downloadResource(value, convertToUnix); + if (value != null) { + + // add "execute" permission to the copied file (needed when loading dll file) + FileUtil.chmod(value.toString(), "ugo+rx", true); + } } catch (Exception e) { getConsole().printError(e.getMessage()); return null;