Repository: kylin
Updated Branches:
  refs/heads/2.0-rc fac1e43d8 -> 192ecee55


KYLIN-1216 Can't parse DateFormat like 'YYYYMMDD' correctly in query

Signed-off-by: Li, Yang <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/192ecee5
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/192ecee5
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/192ecee5

Branch: refs/heads/2.0-rc
Commit: 192ecee559399ab9a001a2c7326d2c38454ee086
Parents: fac1e43
Author: sunyerui <[email protected]>
Authored: Wed Dec 9 17:41:21 2015 +0800
Committer: Li, Yang <[email protected]>
Committed: Wed Dec 9 18:00:18 2015 +0800

----------------------------------------------------------------------
 .gitignore                                                   | 2 ++
 .../main/java/org/apache/kylin/common/util/DateFormat.java   | 8 +++++++-
 .../org/apache/kylin/storage/translate/HBaseKeyRange.java    | 8 ++++----
 3 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/192ecee5/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index e3a72a2..7d1091d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -85,3 +85,5 @@ webapp/app/components/*
 
 ebay*
 build/commit_SHA1
+dist/
+tomcat/

http://git-wip-us.apache.org/repos/asf/kylin/blob/192ecee5/core-common/src/main/java/org/apache/kylin/common/util/DateFormat.java
----------------------------------------------------------------------
diff --git 
a/core-common/src/main/java/org/apache/kylin/common/util/DateFormat.java 
b/core-common/src/main/java/org/apache/kylin/common/util/DateFormat.java
index 43ff00e..9fc3122 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/DateFormat.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/DateFormat.java
@@ -85,9 +85,15 @@ public class DateFormat {
     }
 
     public static long stringToMillis(String str) {
+        return stringToMillis(str, DEFAULT_DATE_PATTERN);
+    }
+
+    public static long stringToMillis(String str, String partitionDateFormat) {
         if (isAllDigits(str)) {
             return Long.parseLong(str);
-        } else if (str.length() == 10) {
+        } else if (str.length() == 8 && partitionDateFormat.length() == 8) {
+            return stringToDate(str, partitionDateFormat).getTime();
+        } else if (str.length() == 10 && partitionDateFormat.length() == 10) {
             return stringToDate(str, DEFAULT_DATE_PATTERN).getTime();
         } else if (str.length() == 19) {
             return stringToDate(str, 
DEFAULT_DATETIME_PATTERN_WITHOUT_MILLISECONDS).getTime();

http://git-wip-us.apache.org/repos/asf/kylin/blob/192ecee5/core-storage/src/main/java/org/apache/kylin/storage/translate/HBaseKeyRange.java
----------------------------------------------------------------------
diff --git 
a/core-storage/src/main/java/org/apache/kylin/storage/translate/HBaseKeyRange.java
 
b/core-storage/src/main/java/org/apache/kylin/storage/translate/HBaseKeyRange.java
index fbb258f..b07a2ce 100644
--- 
a/core-storage/src/main/java/org/apache/kylin/storage/translate/HBaseKeyRange.java
+++ 
b/core-storage/src/main/java/org/apache/kylin/storage/translate/HBaseKeyRange.java
@@ -115,7 +115,7 @@ public class HBaseKeyRange implements 
Comparable<HBaseKeyRange> {
 
             TblColRef partitionDateColumnRef = 
cubeSeg.getCubeDesc().getModel().getPartitionDesc().getPartitionDateColumnRef();
             if (column.equals(partitionDateColumnRef)) {
-                initPartitionRange(dimRange);
+                initPartitionRange(dimRange, 
cubeSeg.getCubeDesc().getModel().getPartitionDesc().getPartitionDateFormat());
             }
         }
 
@@ -130,12 +130,12 @@ public class HBaseKeyRange implements 
Comparable<HBaseKeyRange> {
         this.fuzzyKeys = buildFuzzyKeys(fuzzyValues);
     }
 
-    private void initPartitionRange(ColumnValueRange dimRange) {
+    private void initPartitionRange(ColumnValueRange dimRange, String 
partitionDateFormat) {
         if (null != dimRange.getBeginValue()) {
-            this.partitionColumnStartDate = 
DateFormat.stringToMillis(dimRange.getBeginValue());
+            this.partitionColumnStartDate = 
DateFormat.stringToMillis(dimRange.getBeginValue(), partitionDateFormat);
         }
         if (null != dimRange.getEndValue()) {
-            this.partitionColumnEndDate = 
DateFormat.stringToMillis(dimRange.getEndValue());
+            this.partitionColumnEndDate = 
DateFormat.stringToMillis(dimRange.getEndValue(), partitionDateFormat);
         }
     }
 

Reply via email to