You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by xx...@apache.org on 2023/02/27 08:01:00 UTC
[kylin] 20/34: KYLIN-5455 Added parameter check items for /api/models/semantic API. If PartitionDesc is null then set MultiPartitionDesc to null
This is an automated email from the ASF dual-hosted git repository.
xxyu pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git
commit cf0b7a83d01c647a2d416c71c1117ad41452154e
Author: huangsheng <hu...@163.com>
AuthorDate: Fri Dec 30 14:00:13 2022 +0800
KYLIN-5455 Added parameter check items for /api/models/semantic API. If PartitionDesc is null then set MultiPartitionDesc to null
KYLIN-5455 Optimize the multi partition model judgment logic
---
.../src/main/java/org/apache/kylin/metadata/model/NDataModel.java | 4 +++-
.../src/test/java/org/apache/kylin/rest/service/ModelServiceTest.java | 2 +-
.../src/main/scala/org/apache/kylin/engine/spark/job/SegmentJob.java | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/NDataModel.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/NDataModel.java
index e8df524f38..9c6209ec59 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/NDataModel.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/NDataModel.java
@@ -1455,7 +1455,9 @@ public class NDataModel extends RootPersistentEntity {
}
public boolean isMultiPartitionModel() {
- return multiPartitionDesc != null && CollectionUtils.isNotEmpty(multiPartitionDesc.getColumns());
+ // a multi-partition model can be determined only if neither partitionDesc nor multiPartitionDesc is null
+ return partitionDesc != null && multiPartitionDesc != null
+ && CollectionUtils.isNotEmpty(multiPartitionDesc.getColumns());
}
public List<Integer> getMeasureRelatedCols() {
diff --git a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/ModelServiceTest.java b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/ModelServiceTest.java
index df0b60b2b6..3e585b7392 100644
--- a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/ModelServiceTest.java
+++ b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/ModelServiceTest.java
@@ -4550,7 +4550,7 @@ public class ModelServiceTest extends SourceTestCase {
Assert.assertEquals(3, model.getMultiPartitionDesc().getPartitions().size());
// PartitionDesc change
- modelService.updatePartitionColumn(getProject(), modelId, null, model.getMultiPartitionDesc());
+ modelService.updatePartitionColumn(getProject(), modelId, new PartitionDesc(), model.getMultiPartitionDesc());
val df1 = dfm.getDataflow(modelId);
val model1 = modelManager.getDataModelDesc(modelId);
Assert.assertEquals(0, df1.getSegments().getSegments().size());
diff --git a/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SegmentJob.java b/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SegmentJob.java
index 0b969ed923..28174f8d4f 100644
--- a/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SegmentJob.java
+++ b/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SegmentJob.java
@@ -218,7 +218,8 @@ public abstract class SegmentJob extends SparkApplication {
}
protected boolean isPartitioned() {
- return Objects.nonNull(indexPlan.getModel().getMultiPartitionDesc());
+ return Objects.nonNull(indexPlan.getModel().getPartitionDesc())
+ && Objects.nonNull(indexPlan.getModel().getMultiPartitionDesc());
}
private boolean needSkipSegment(NDataSegment dataSegment) {