This is an automated email from the ASF dual-hosted git repository.

nic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git


The following commit(s) were added to refs/heads/master by this push:
     new efef770  KYLIN-4229 String index out of range -1
efef770 is described below

commit efef7701430e27ca77d29b01c77c7aef1c313842
Author: Temple Zhou <dba...@gmail.com>
AuthorDate: Mon Nov 4 21:14:26 2019 +0800

    KYLIN-4229 String index out of range -1
---
 .../java/org/apache/kylin/job/JoinedFormatter.java |  2 +-
 .../org/apache/kylin/job/JoinedFormatterTest.java  | 29 ++++++++++++++++++++++
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/core-job/src/main/java/org/apache/kylin/job/JoinedFormatter.java 
b/core-job/src/main/java/org/apache/kylin/job/JoinedFormatter.java
index 901ee15..3f19ce9 100644
--- a/core-job/src/main/java/org/apache/kylin/job/JoinedFormatter.java
+++ b/core-job/src/main/java/org/apache/kylin/job/JoinedFormatter.java
@@ -66,7 +66,7 @@ public class JoinedFormatter {
         String startDate = "";
         String endDate = "";
         String partitionColumnDateFormat = partDesc.getPartitionDateFormat();
-        if (StringUtils.isBlank(partitionColumnDateFormat)) {
+        if (partDesc.getPartitionTimeColumn() == null && 
partDesc.getPartitionDateColumn() == null) {
             startDate = String.valueOf(startInclusive);
             endDate = String.valueOf(endExclusive);
         } else {
diff --git 
a/core-job/src/test/java/org/apache/kylin/job/JoinedFormatterTest.java 
b/core-job/src/test/java/org/apache/kylin/job/JoinedFormatterTest.java
index a08a12b..c1bab65 100644
--- a/core-job/src/test/java/org/apache/kylin/job/JoinedFormatterTest.java
+++ b/core-job/src/test/java/org/apache/kylin/job/JoinedFormatterTest.java
@@ -19,6 +19,15 @@
 package org.apache.kylin.job;
 
 import org.apache.kylin.common.util.LocalFileMetadataTestCase;
+import org.apache.kylin.common.util.RandomUtil;
+import org.apache.kylin.cube.CubeInstance;
+import org.apache.kylin.cube.CubeManager;
+import org.apache.kylin.cube.CubeSegment;
+import org.apache.kylin.cube.model.CubeJoinedFlatTableDesc;
+import org.apache.kylin.metadata.model.DataModelDesc;
+import org.apache.kylin.metadata.model.IJoinedFlatTableDesc;
+import org.apache.kylin.metadata.model.SegmentRange;
+import org.apache.kylin.metadata.model.SegmentStatusEnum;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -59,4 +68,24 @@ public class JoinedFormatterTest extends 
LocalFileMetadataTestCase {
         String fmtSql = formatter.formatSentence(sql);
         assertEquals(expected, fmtSql);
     }
+
+    @Test
+    // For JIRA: KYLIN-4229
+    public void testDateFormatWithFullBuildAndFilter() {
+        this.createTestMetadata();
+        CubeInstance cube = 
CubeManager.getInstance(getTestConfig()).getCube("fifty_dim_full_build_cube");
+        CubeSegment mockSeg = new CubeSegment();
+
+        mockSeg.setCubeInstance(cube);
+        mockSeg.setName("FULL_BUILD");
+        mockSeg.setUuid(RandomUtil.randomUUID().toString());
+        
mockSeg.setStorageLocationIdentifier(RandomUtil.randomUUID().toString());
+        mockSeg.setStatus(SegmentStatusEnum.READY);
+        mockSeg.setTSRange(new SegmentRange.TSRange(0L, Long.MAX_VALUE));
+        IJoinedFlatTableDesc flatTableDesc = new 
CubeJoinedFlatTableDesc(mockSeg);
+        DataModelDesc model = flatTableDesc.getDataModel();
+        model.setFilterCondition("A > 1");
+
+        JoinedFlatTable.generateSelectDataStatement(flatTableDesc);
+    }
 }

Reply via email to