This is an automated email from the ASF dual-hosted git repository.
jlfsdtc pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/kylin5 by this push:
new 5117bff0c7 KYLIN-6078 [part-2] submit jobs when refresh specify
partitions
5117bff0c7 is described below
commit 5117bff0c7c412409d459eb42c389b2733717a31
Author: jlf <[email protected]>
AuthorDate: Mon Oct 20 10:56:31 2025 +0800
KYLIN-6078 [part-2] submit jobs when refresh specify partitions
---
.../org/apache/kylin/rest/service/InternalTableServiceTest.java | 7 +++++++
.../org/apache/kylin/rest/service/InternalTableLoadingService.java | 7 +++----
.../java/org/apache/kylin/rest/service/InternalTableService.java | 5 ++---
3 files changed, 12 insertions(+), 7 deletions(-)
diff --git
a/src/data-loading-service/src/test/java/org/apache/kylin/rest/service/InternalTableServiceTest.java
b/src/data-loading-service/src/test/java/org/apache/kylin/rest/service/InternalTableServiceTest.java
index 7b3aca4def..c2ebb7076f 100644
---
a/src/data-loading-service/src/test/java/org/apache/kylin/rest/service/InternalTableServiceTest.java
+++
b/src/data-loading-service/src/test/java/org/apache/kylin/rest/service/InternalTableServiceTest.java
@@ -601,6 +601,13 @@ public class InternalTableServiceTest extends
AbstractTestCase {
when(tableService.getPartitionColumnFormat(any(), any(), any(),
any())).thenReturn("yyyyMM");
internalTableService.updateInternalTable(PROJECT, table.getName(),
table.getDatabase(),
new String[] { DATE_COL }, "yyyyMM", new HashMap<>(),
InternalTableDesc.StorageType.PARQUET.name());
+ InternalTableManager internalTableManager =
InternalTableManager.getInstance(config, PROJECT);
+ InternalTableDesc internalTable =
internalTableManager.getInternalTableDesc(TABLE_INDENTITY);
+ List<String[]> partitionRange = internalTable.getPartitionRange();
+ partitionRange.add(new String[] { "199201", "199211" });
+ internalTable.setPartitionRange(partitionRange);
+ internalTableManager.saveOrUpdateInternalTable(internalTable);
+
String jobId = internalTableService.loadIntoInternalTable(PROJECT,
table.getName(), table.getDatabase(), false,
true, "", "", new String[] { "199201", "199203" },
null).getJobs().get(0).getJobId();
executableManager.discardJob(jobId);
diff --git
a/src/datasource-service/src/main/java/org/apache/kylin/rest/service/InternalTableLoadingService.java
b/src/datasource-service/src/main/java/org/apache/kylin/rest/service/InternalTableLoadingService.java
index 430c3c3223..db551f4f5a 100644
---
a/src/datasource-service/src/main/java/org/apache/kylin/rest/service/InternalTableLoadingService.java
+++
b/src/datasource-service/src/main/java/org/apache/kylin/rest/service/InternalTableLoadingService.java
@@ -143,10 +143,9 @@ public class InternalTableLoadingService extends
BasicService {
String errorMsg = String.format(Locale.ROOT,
MsgPicker.getMsg().getTimeRangeOverlap());
throw new KylinException(INTERNAL_TABLE_ERROR, errorMsg);
}
- // check refresh out of data range(exclude specify partitions)
- if (isRefresh && finalPartitions.length == 0
- && !DataRangeUtils.timeInRange(range,
internalTable.getPartitionRange(), timeFmt)) {
- String errorMsg = String.format(Locale.ROOT,
MsgPicker.getMsg().getTimeOutOfRange());
+ // check refresh out of data range(exclude non-time partitions)
+ if (isRefresh && !DataRangeUtils.timeInRange(range,
internalTable.getPartitionRange(), timeFmt)) {
+ String errorMsg = String.format(Locale.ROOT,
MsgPicker.getMsg().getInternalTableUnpartitioned());
throw new KylinException(INTERNAL_TABLE_ERROR, errorMsg);
}
});
diff --git
a/src/datasource-service/src/main/java/org/apache/kylin/rest/service/InternalTableService.java
b/src/datasource-service/src/main/java/org/apache/kylin/rest/service/InternalTableService.java
index 33520a4e86..0914d14e95 100644
---
a/src/datasource-service/src/main/java/org/apache/kylin/rest/service/InternalTableService.java
+++
b/src/datasource-service/src/main/java/org/apache/kylin/rest/service/InternalTableService.java
@@ -403,11 +403,10 @@ public class InternalTableService extends BasicService {
boolean isIncremental, boolean isRefresh, String startDate, String
endDate, String[] partitions,
String yarnQueue) {
aclEvaluate.checkProjectWritePermission(project);
- if (isIncremental) {
- DataRangeUtils.validateRange(startDate, endDate);
- }
if (null != partitions && partitions.length > 0) {
isIncremental = true;
+ } else if (isIncremental) {
+ DataRangeUtils.validateRange(startDate, endDate);
}
// treat full refresh as full load processing.
if (!isIncremental && isRefresh) {