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) {

Reply via email to