From 3158b2c1794c2ae2f77d18be0ab38c15e50488d5 Mon Sep 17 00:00:00 2001 From: xiangzihao <460888207@qq.com> Date: Mon, 21 Feb 2022 14:54:40 +0800 Subject: [PATCH] [cherry-pick][2.0.4-prepare][API] Update process definition error (#8460) * add try catch (#8433) * cherry-pick * remove useless file * remove useless file * remove useless file --- .../mysql/dolphinscheduler_dml.sql | 82 ++++++++++++++++++- .../postgresql/dolphinscheduler_dml.sql | 82 ++++++++++++++++++- 2 files changed, 162 insertions(+), 2 deletions(-) diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/mysql/dolphinscheduler_dml.sql index 38964cc551..06d8fcb465 100644 --- a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/mysql/dolphinscheduler_dml.sql +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/mysql/dolphinscheduler_dml.sql @@ -13,4 +13,84 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. -*/ \ No newline at end of file +*/ + +DELETE FROM t_ds_process_task_relation_log WHERE id IN +( + SELECT + x.id + FROM + ( + SELECT + aa.id + FROM + t_ds_process_task_relation_log aa + JOIN + ( + SELECT + a.process_definition_code + ,MAX(a.id) as min_id + ,a.pre_task_code + ,a.pre_task_version + ,a.post_task_code + ,a.post_task_version + ,a.process_definition_version + ,COUNT(*) cnt + FROM + t_ds_process_task_relation_log a + JOIN ( + SELECT + code + FROM + t_ds_process_definition + GROUP BY code + )b ON b.code = a.process_definition_code + WHERE 1=1 + GROUP BY a.pre_task_code + ,a.post_task_code + ,a.pre_task_version + ,a.post_task_version + ,a.process_definition_code + ,a.process_definition_version + HAVING COUNT(*) > 1 + )bb ON bb.process_definition_code = aa.process_definition_code + AND bb.pre_task_code = aa.pre_task_code + AND bb.post_task_code = aa.post_task_code + AND bb.process_definition_version = aa.process_definition_version + AND bb.pre_task_version = aa.pre_task_version + AND bb.post_task_version = aa.post_task_version + AND bb.min_id != aa.id + )x +) +; + +DELETE FROM t_ds_task_definition_log WHERE id IN +( + SELECT + x.id + FROM + ( + SELECT + a.id + FROM + t_ds_task_definition_log a + JOIN + ( + SELECT + code + ,name + ,version + ,MAX(id) AS min_id + FROM + t_ds_task_definition_log + GROUP BY code + ,name + ,version + HAVING COUNT(*) > 1 + )b ON b.code = a.code + AND b.name = a.name + AND b.version = a.version + AND b.min_id != a.id + )x +) +; diff --git a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/postgresql/dolphinscheduler_dml.sql index 38964cc551..06d8fcb465 100644 --- a/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/postgresql/dolphinscheduler_dml.sql +++ b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.4_schema/postgresql/dolphinscheduler_dml.sql @@ -13,4 +13,84 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. -*/ \ No newline at end of file +*/ + +DELETE FROM t_ds_process_task_relation_log WHERE id IN +( + SELECT + x.id + FROM + ( + SELECT + aa.id + FROM + t_ds_process_task_relation_log aa + JOIN + ( + SELECT + a.process_definition_code + ,MAX(a.id) as min_id + ,a.pre_task_code + ,a.pre_task_version + ,a.post_task_code + ,a.post_task_version + ,a.process_definition_version + ,COUNT(*) cnt + FROM + t_ds_process_task_relation_log a + JOIN ( + SELECT + code + FROM + t_ds_process_definition + GROUP BY code + )b ON b.code = a.process_definition_code + WHERE 1=1 + GROUP BY a.pre_task_code + ,a.post_task_code + ,a.pre_task_version + ,a.post_task_version + ,a.process_definition_code + ,a.process_definition_version + HAVING COUNT(*) > 1 + )bb ON bb.process_definition_code = aa.process_definition_code + AND bb.pre_task_code = aa.pre_task_code + AND bb.post_task_code = aa.post_task_code + AND bb.process_definition_version = aa.process_definition_version + AND bb.pre_task_version = aa.pre_task_version + AND bb.post_task_version = aa.post_task_version + AND bb.min_id != aa.id + )x +) +; + +DELETE FROM t_ds_task_definition_log WHERE id IN +( + SELECT + x.id + FROM + ( + SELECT + a.id + FROM + t_ds_task_definition_log a + JOIN + ( + SELECT + code + ,name + ,version + ,MAX(id) AS min_id + FROM + t_ds_task_definition_log + GROUP BY code + ,name + ,version + HAVING COUNT(*) > 1 + )b ON b.code = a.code + AND b.name = a.name + AND b.version = a.version + AND b.min_id != a.id + )x +) +;