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/07/21 06:14:07 UTC

svn commit: r1364038 - in /hive/trunk/common/src: java/org/apache/hadoop/hive/conf/HiveConf.java test/org/apache/hadoop/hive/conf/TestHiveConf.java

Author: hashutosh
Date: Sat Jul 21 04:14:06 2012
New Revision: 1364038

URL: http://svn.apache.org/viewvc?rev=1364038&view=rev
Log:
HIVE-3221 : HiveConf.getPositionFromInternalName does not support more than sinle digit column numbers (Sushanth Sowmyan via Ashutosh Chauhan)

Modified:
    hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
    hive/trunk/common/src/test/org/apache/hadoop/hive/conf/TestHiveConf.java

Modified: hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
URL: http://svn.apache.org/viewvc/hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java?rev=1364038&r1=1364037&r2=1364038&view=diff
==============================================================================
--- hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java (original)
+++ hive/trunk/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java Sat Jul 21 04:14:06 2012
@@ -28,6 +28,8 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Properties;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import javax.security.auth.login.LoginException;
 
@@ -1040,11 +1042,13 @@ public class HiveConf extends Configurat
   }
 
   public static int getPositionFromInternalName(String internalName) {
-    char pos = internalName.charAt(internalName.length()-1);
-    if (Character.isDigit(pos)) {
-      return Character.digit(pos, 10);
-    } else{
+    Pattern internalPattern = Pattern.compile("_col([0-9]+)");
+    Matcher m = internalPattern.matcher(internalName);
+    if (!m.matches()){
       return -1;
+    } else {
+      return Integer.parseInt(m.group(1));
     }
+
   }
 }

Modified: hive/trunk/common/src/test/org/apache/hadoop/hive/conf/TestHiveConf.java
URL: http://svn.apache.org/viewvc/hive/trunk/common/src/test/org/apache/hadoop/hive/conf/TestHiveConf.java?rev=1364038&r1=1364037&r2=1364038&view=diff
==============================================================================
--- hive/trunk/common/src/test/org/apache/hadoop/hive/conf/TestHiveConf.java (original)
+++ hive/trunk/common/src/test/org/apache/hadoop/hive/conf/TestHiveConf.java Sat Jul 21 04:14:06 2012
@@ -76,4 +76,10 @@ public class TestHiveConf extends TestCa
     // Test HiveConf property variable substitution in hive-site.xml
     checkHiveConf("test.var.hiveconf.property", ConfVars.DEFAULTPARTITIONNAME.defaultVal);
   }
+
+  public void testColumnNameMapping() throws Exception {
+    for (int i = 0 ; i < 20 ; i++ ){
+      assertTrue(i == HiveConf.getPositionFromInternalName(HiveConf.getColumnInternalName(i)));
+    }
+  }
 }