Index: ql/src/test/org/apache/hadoop/hive/ql/io/TestSymlinkTextInputFormat.java =================================================================== --- ql/src/test/org/apache/hadoop/hive/ql/io/TestSymlinkTextInputFormat.java (revision 1394344) +++ ql/src/test/org/apache/hadoop/hive/ql/io/TestSymlinkTextInputFormat.java (working copy) @@ -187,9 +187,10 @@ assertEquals(1, retSplits.length); } catch (Exception e) { e.printStackTrace(); + fail("Caught exception " + e); } finally { if (tblCreated) { - drv.run("drop table text_symlink_text;").getResponseCode(); + drv.run("drop table text_symlink_text").getResponseCode(); } } } Index: ql/src/java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java (revision 1394344) +++ ql/src/java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java (working copy) @@ -23,6 +23,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Properties; import java.util.Set; @@ -48,6 +49,7 @@ import org.apache.hadoop.mapred.SequenceFileInputFormat; import org.apache.hadoop.mapred.SequenceFileOutputFormat; import org.apache.hadoop.mapred.TextInputFormat; +import org.apache.hadoop.util.Shell; /** * An util class for various Hive file format tasks. @@ -265,9 +267,14 @@ PartitionDesc part = doGetPartitionDescFromPath(pathToPartitionInfo, dir); if (part == null - && (ignoreSchema || (dir.toUri().getScheme() == null || dir.toUri().getScheme().trim() - .equals("")))) { + && (ignoreSchema + || (dir.toUri().getScheme() == null || dir.toUri().getScheme().trim() + .equals("")) + || pathsContainNoScheme(pathToPartitionInfo) + ) + ) { + Map newPathToPartitionInfo = null; if (cacheMap != null) { newPathToPartitionInfo = cacheMap.get(pathToPartitionInfo); @@ -291,6 +298,17 @@ } } + private static boolean pathsContainNoScheme(Map pathToPartitionInfo) { + + for( Entry pe : pathToPartitionInfo.entrySet()){ + if(new Path(pe.getKey()).toUri().getScheme() != null){ + return false; + } + } + return true; + + } + private static void populateNewPartitionDesc( Map pathToPartitionInfo, Map newPathToPartitionInfo) { @@ -355,6 +373,11 @@ } String dirPath = dir.toUri().getPath(); + if(Shell.WINDOWS){ + //temp hack + //do this to get rid of "/" before the drive letter in windows + dirPath = new Path(dirPath).toString(); + } if (foundAlias(pathToAliases, dirPath)) { return dirPath; }