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