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); } }
