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

chenxingchun pushed a commit to branch 1.3.6-prepare
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git


The following commit(s) were added to refs/heads/1.3.6-prepare by this push:
     new 64701e0  [1.3.6-prepare][PGSQL] Delete the stopped workflow without 
deleting the correspon… (#5153)
64701e0 is described below

commit 64701e05330b80c4c71d7a39469f3bdecfa7f263
Author: Kirs <[email protected]>
AuthorDate: Wed Mar 31 15:46:55 2021 +0800

    [1.3.6-prepare][PGSQL] Delete the stopped workflow without deleting the 
correspon… (#5153)
    
    pr    #5066
    issue #5048
---
 .../dao/mapper/TaskInstanceMapperTest.java         | 102 +++++++++------------
 sql/dolphinscheduler_postgre.sql                   |   3 +-
 .../postgresql/dolphinscheduler_ddl.sql            |   5 +
 3 files changed, 48 insertions(+), 62 deletions(-)

diff --git 
a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapperTest.java
 
b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapperTest.java
index 0175271..5448e4a 100644
--- 
a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapperTest.java
+++ 
b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapperTest.java
@@ -14,12 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dolphinscheduler.dao.mapper;
 
+package org.apache.dolphinscheduler.dao.mapper;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.apache.dolphinscheduler.common.enums.CommandType;
 import org.apache.dolphinscheduler.common.enums.ExecutionStatus;
 import org.apache.dolphinscheduler.common.enums.Flag;
 import org.apache.dolphinscheduler.common.enums.TaskType;
@@ -27,7 +24,12 @@ import 
org.apache.dolphinscheduler.dao.entity.ExecuteStatusCount;
 import org.apache.dolphinscheduler.dao.entity.ProcessDefinition;
 import org.apache.dolphinscheduler.dao.entity.ProcessInstance;
 import org.apache.dolphinscheduler.dao.entity.TaskInstance;
+
+import java.util.Date;
+import java.util.List;
+
 import org.junit.Assert;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,13 +38,10 @@ import org.springframework.test.annotation.Rollback;
 import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.List;
-
 @RunWith(SpringRunner.class)
 @SpringBootTest
 @Transactional
-@Rollback(true)
+@Rollback
 public class TaskInstanceMapperTest {
 
 
@@ -55,20 +54,44 @@ public class TaskInstanceMapperTest {
     @Autowired
     ProcessInstanceMapper processInstanceMapper;
 
+    @Autowired
+    ProcessInstanceMapMapper processInstanceMapMapper;
+
+    private int processInstanceId;
+
+    @Before
+    public void before() {
+        ProcessInstance processInstance = new ProcessInstance();
+        processInstance.setWarningGroupId(0);
+        processInstance.setCommandParam("");
+        processInstanceMapper.insert(processInstance);
+        processInstanceId = processInstance.getId();
+    }
+
     /**
      * insert
+     *
      * @return TaskInstance
      */
-    private TaskInstance insertOne(){
+    private TaskInstance insertOne() {
         //insertOne
+        return insertOne("us task", processInstanceId, 
ExecutionStatus.RUNNING_EXECUTION, TaskType.SHELL.toString(),1);
+    }
+
+    /**
+     * construct a task instance and then insert
+     */
+    private TaskInstance insertOne(String taskName, int processInstanceId, 
ExecutionStatus state, String taskType,int processDefinitionId) {
         TaskInstance taskInstance = new TaskInstance();
         taskInstance.setFlag(Flag.YES);
-        taskInstance.setName("ut task");
-        taskInstance.setState(ExecutionStatus.RUNNING_EXECUTION);
+        taskInstance.setName(taskName);
+        taskInstance.setState(state);
         taskInstance.setStartTime(new Date());
         taskInstance.setEndTime(new Date());
         taskInstance.setTaskJson("{}");
-        taskInstance.setTaskType(TaskType.SHELL.toString());
+        taskInstance.setProcessInstanceId(processInstanceId);
+        taskInstance.setTaskType(taskType);
+        taskInstance.setProcessDefinitionId(processDefinitionId);
         taskInstanceMapper.insert(taskInstance);
         return taskInstance;
     }
@@ -77,7 +100,7 @@ public class TaskInstanceMapperTest {
      * test update
      */
     @Test
-    public void testUpdate(){
+    public void testUpdate() {
         //insertOne
         TaskInstance taskInstance = insertOne();
         //update
@@ -90,7 +113,7 @@ public class TaskInstanceMapperTest {
      * test delete
      */
     @Test
-    public void testDelete(){
+    public void testDelete() {
         TaskInstance taskInstance = insertOne();
         int delete = taskInstanceMapper.deleteById(taskInstance.getId());
         Assert.assertEquals(1, delete);
@@ -114,7 +137,7 @@ public class TaskInstanceMapperTest {
     @Test
     public void testQueryTaskByProcessIdAndState() {
         TaskInstance task = insertOne();
-        task.setProcessInstanceId(110);
+        task.setProcessInstanceId(processInstanceId);
         taskInstanceMapper.updateById(task);
         List<Integer> taskInstances = 
taskInstanceMapper.queryTaskByProcessIdAndState(
                 task.getProcessInstanceId(),
@@ -131,8 +154,8 @@ public class TaskInstanceMapperTest {
     public void testFindValidTaskListByProcessId() {
         TaskInstance task = insertOne();
         TaskInstance task2 = insertOne();
-        task.setProcessInstanceId(110);
-        task2.setProcessInstanceId(110);
+        task.setProcessInstanceId(processInstanceId);
+        task2.setProcessInstanceId(processInstanceId);
         taskInstanceMapper.updateById(task);
         taskInstanceMapper.updateById(task2);
 
@@ -149,7 +172,7 @@ public class TaskInstanceMapperTest {
         taskInstanceMapper.deleteById(task2.getId());
         taskInstanceMapper.deleteById(task.getId());
         Assert.assertNotEquals(taskInstances.size(), 0);
-        Assert.assertNotEquals(taskInstances1.size(), 0 );
+        Assert.assertNotEquals(taskInstances1.size(), 0);
     }
 
     /**
@@ -254,47 +277,4 @@ public class TaskInstanceMapperTest {
         processDefinitionMapper.deleteById(definition.getId());
         taskInstanceMapper.deleteById(task.getId());
     }
-
-    /**
-     * test page
-     */
-    @Test
-    public void testQueryTaskInstanceListPaging() {
-        TaskInstance task = insertOne();
-
-        ProcessDefinition definition = new ProcessDefinition();
-        definition.setProjectId(1111);
-        processDefinitionMapper.insert(definition);
-
-        ProcessInstance processInstance = new ProcessInstance();
-        processInstance.setProcessDefinitionId(definition.getId());
-        processInstance.setState(ExecutionStatus.RUNNING_EXECUTION);
-        processInstance.setName("ut process");
-        processInstance.setStartTime(new Date());
-        processInstance.setEndTime(new Date());
-        processInstance.setCommandType(CommandType.START_PROCESS);
-        processInstanceMapper.insert(processInstance);
-
-        task.setProcessDefinitionId(definition.getId());
-        task.setProcessInstanceId(processInstance.getId());
-        taskInstanceMapper.updateById(task);
-
-        Page<TaskInstance> page = new Page(1,3);
-        IPage<TaskInstance> taskInstanceIPage = 
taskInstanceMapper.queryTaskInstanceListPaging(
-                page,
-                definition.getProjectId(),
-                task.getProcessInstanceId(),
-                "",
-                "",
-                0,
-                new int[0],
-                "",
-                null,null
-        );
-        processInstanceMapper.deleteById(processInstance.getId());
-        taskInstanceMapper.deleteById(task.getId());
-        processDefinitionMapper.deleteById(definition.getId());
-        Assert.assertNotEquals(taskInstanceIPage.getTotal(), 0);
-
-    }
 }
\ No newline at end of file
diff --git a/sql/dolphinscheduler_postgre.sql b/sql/dolphinscheduler_postgre.sql
index 13e55a8..0a81bc2 100644
--- a/sql/dolphinscheduler_postgre.sql
+++ b/sql/dolphinscheduler_postgre.sql
@@ -569,7 +569,8 @@ CREATE TABLE t_ds_task_instance (
   task_instance_priority int DEFAULT NULL ,
   worker_group varchar(64),
   executor_id int DEFAULT NULL ,
-  PRIMARY KEY (id)
+  PRIMARY KEY (id),
+  CONSTRAINT foreign_key_instance_id FOREIGN KEY(process_instance_id) 
REFERENCES t_ds_process_instance(id) ON DELETE CASCADE
 ) ;
 
 --
diff --git a/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_ddl.sql 
b/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_ddl.sql
index d6f1b6f..860c8b2 100644
--- a/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_ddl.sql
+++ b/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_ddl.sql
@@ -35,3 +35,8 @@ d//
 delimiter ;
 SELECT uc_dolphin_T_t_ds_worker_group_A_ip_list();
 DROP FUNCTION IF EXISTS uc_dolphin_T_t_ds_worker_group_A_ip_list();
+delimiter ;
+
+-- Add foreign key constraints for t_ds_task_instance --
+ALTER TABLE t_ds_task_instance ADD CONSTRAINT foreign_key_instance_id  FOREIGN 
KEY(process_instance_id) REFERENCES t_ds_process_instance(id) ON DELETE CASCADE;
+

Reply via email to