You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2015/10/28 11:03:43 UTC

incubator-kylin git commit: KYLIN-1101 Allow "YYYYMMDD" as a date partition column

Repository: incubator-kylin
Updated Branches:
  refs/heads/2.x-staging 48eadcf0f -> ffb38232d


KYLIN-1101 Allow "YYYYMMDD" as a date partition column

Signed-off-by: Li, Yang <ya...@ebay.com>


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

Branch: refs/heads/2.x-staging
Commit: ffb38232d6bc6c8c74549862b96f598e909aaf60
Parents: 48eadcf
Author: lidongsjtu <do...@ebay.com>
Authored: Wed Oct 28 14:18:15 2015 +0800
Committer: Li, Yang <ya...@ebay.com>
Committed: Wed Oct 28 18:03:23 2015 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/common/util/DateFormat.java |  6 +++++-
 .../apache/kylin/metadata/model/PartitionDesc.java    | 14 ++++++++++++--
 2 files changed, 17 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ffb38232/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 f46edae..43ff00e 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
@@ -47,7 +47,11 @@ public class DateFormat {
     }
 
     public static String formatToDateStr(long millis) {
-        return formatToTimeStr(millis, DEFAULT_DATE_PATTERN);
+        return formatToDateStr(millis, DEFAULT_DATE_PATTERN);
+    }
+
+    public static String formatToDateStr(long millis, String pattern) {
+        return getDateFormat(pattern).format(new Date(millis));
     }
 
     public static String formatToTimeStr(long millis) {

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ffb38232/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
index 2f1e3dd..0de905c 100644
--- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
+++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/PartitionDesc.java
@@ -45,6 +45,8 @@ public class PartitionDesc {
     private String partitionDateColumn;
     @JsonProperty("partition_date_start")
     private long partitionDateStart = 0L;
+    @JsonProperty("partition_date_format")
+    private String partitionDateFormat = DateFormat.DEFAULT_DATE_PATTERN;
     @JsonProperty("partition_type")
     private PartitionType partitionType = PartitionType.APPEND;
     @JsonProperty("partition_condition_builder")
@@ -98,6 +100,14 @@ public class PartitionDesc {
         this.partitionDateStart = partitionDateStart;
     }
 
+    public String getPartitionDateFormat() {
+        return partitionDateFormat;
+    }
+
+    public void setPartitionDateFormat(String partitionDateFormat) {
+        this.partitionDateFormat = partitionDateFormat;
+    }
+
     public PartitionType getCubePartitionType() {
         return partitionType;
     }
@@ -137,10 +147,10 @@ public class PartitionDesc {
             StringBuilder builder = new StringBuilder();
 
             if (startInclusive > 0) {
-                builder.append(partitionColumnName + " >= '" + DateFormat.formatToDateStr(startInclusive) + "' ");
+                builder.append(partitionColumnName + " >= '" + DateFormat.formatToDateStr(startInclusive, partDesc.getPartitionDateFormat()) + "' ");
                 builder.append("AND ");
             }
-            builder.append(partitionColumnName + " < '" + DateFormat.formatToDateStr(endExclusive) + "'");
+            builder.append(partitionColumnName + " < '" + DateFormat.formatToDateStr(endExclusive, partDesc.getPartitionDateFormat()) + "'");
 
             return builder.toString();
         }