You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2012/10/25 02:40:32 UTC

svn commit: r1401935 - in /hive/trunk/ql/src: java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java test/org/apache/hadoop/hive/ql/io/TestSymlinkTextInputFormat.java

Author: hashutosh
Date: Thu Oct 25 00:40:32 2012
New Revision: 1401935

URL: http://svn.apache.org/viewvc?rev=1401935&view=rev
Log:
HIVE-3519 : partition to directory comparison in CombineHiveInputFormat needs to accept partitions dir without scheme (Thejas Nair via Ashutosh Chauhan)

Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java
    hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/TestSymlinkTextInputFormat.java

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java?rev=1401935&r1=1401934&r2=1401935&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/HiveFileFormatUtils.java Thu Oct 25 00:40:32 2012
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 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.OutputFo
 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,8 +267,13 @@ public final class HiveFileFormatUtils {
     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<String, PartitionDesc> newPathToPartitionInfo = null;
       if (cacheMap != null) {
@@ -291,6 +298,17 @@ public final class HiveFileFormatUtils {
     }
   }
 
+  private static boolean pathsContainNoScheme(Map<String, PartitionDesc> pathToPartitionInfo) {
+
+    for( Entry<String, PartitionDesc> pe  : pathToPartitionInfo.entrySet()){
+      if(new Path(pe.getKey()).toUri().getScheme() != null){
+        return false;
+      }
+    }
+    return true;
+
+  }
+
   private static void populateNewPartitionDesc(
       Map<String, PartitionDesc> pathToPartitionInfo,
       Map<String, PartitionDesc> newPathToPartitionInfo) {
@@ -355,6 +373,11 @@ public final class HiveFileFormatUtils {
     }
 
     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;
     }

Modified: hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/TestSymlinkTextInputFormat.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/TestSymlinkTextInputFormat.java?rev=1401935&r1=1401934&r2=1401935&view=diff
==============================================================================
--- hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/TestSymlinkTextInputFormat.java (original)
+++ hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/TestSymlinkTextInputFormat.java Thu Oct 25 00:40:32 2012
@@ -187,9 +187,10 @@ public class TestSymlinkTextInputFormat 
       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();
       }
     }
   }