diff --git common/src/java/org/apache/hadoop/hive/conf/HiveConf.java common/src/java/org/apache/hadoop/hive/conf/HiveConf.java index 7d8e5bc..b976bb8 100644 --- common/src/java/org/apache/hadoop/hive/conf/HiveConf.java +++ common/src/java/org/apache/hadoop/hive/conf/HiveConf.java @@ -2125,7 +2125,7 @@ public static long toTime(String value, TimeUnit inputUnit, TimeUnit outUnit) { public static TimeUnit unitFor(String unit, TimeUnit defaultUnit) { unit = unit.trim().toLowerCase(); - if (unit.isEmpty()) { + if (unit.isEmpty() || unit.equals("l")) { if (defaultUnit == null) { throw new IllegalArgumentException("Time unit is not specified"); } diff --git common/src/test/org/apache/hadoop/hive/conf/TestHiveConf.java common/src/test/org/apache/hadoop/hive/conf/TestHiveConf.java index fce46de..e9bde21 100644 --- common/src/test/org/apache/hadoop/hive/conf/TestHiveConf.java +++ common/src/test/org/apache/hadoop/hive/conf/TestHiveConf.java @@ -24,6 +24,8 @@ import org.junit.Assert; import org.junit.Test; +import java.util.concurrent.TimeUnit; + /** * TestHiveConf @@ -95,4 +97,24 @@ public void testColumnNameMapping() throws Exception { Assert.assertTrue(i == HiveConf.getPositionFromInternalName(HiveConf.getColumnInternalName(i))); } } + + @Test + public void testUnitFor() throws Exception { + Assert.assertEquals(TimeUnit.SECONDS, HiveConf.unitFor("L", TimeUnit.SECONDS)); + Assert.assertEquals(TimeUnit.MICROSECONDS, HiveConf.unitFor("", TimeUnit.MICROSECONDS)); + Assert.assertEquals(TimeUnit.DAYS, HiveConf.unitFor("d", null)); + Assert.assertEquals(TimeUnit.DAYS, HiveConf.unitFor("days", null)); + Assert.assertEquals(TimeUnit.HOURS, HiveConf.unitFor("h", null)); + Assert.assertEquals(TimeUnit.HOURS, HiveConf.unitFor("hours", null)); + Assert.assertEquals(TimeUnit.MINUTES, HiveConf.unitFor("m", null)); + Assert.assertEquals(TimeUnit.MINUTES, HiveConf.unitFor("minutes", null)); + Assert.assertEquals(TimeUnit.SECONDS, HiveConf.unitFor("s", null)); + Assert.assertEquals(TimeUnit.SECONDS, HiveConf.unitFor("seconds", null)); + Assert.assertEquals(TimeUnit.MILLISECONDS, HiveConf.unitFor("ms", null)); + Assert.assertEquals(TimeUnit.MILLISECONDS, HiveConf.unitFor("msecs", null)); + Assert.assertEquals(TimeUnit.MICROSECONDS, HiveConf.unitFor("us", null)); + Assert.assertEquals(TimeUnit.MICROSECONDS, HiveConf.unitFor("useconds", null)); + Assert.assertEquals(TimeUnit.NANOSECONDS, HiveConf.unitFor("ns", null)); + Assert.assertEquals(TimeUnit.NANOSECONDS, HiveConf.unitFor("nsecs", null)); + } }