You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by ji...@apache.org on 2022/02/21 06:54:50 UTC
[dolphinscheduler] branch 2.0.4-prepare updated: [cherry-pick][2.0.4-prepare][API] Update process definition error (#8460)
This is an automated email from the ASF dual-hosted git repository.
jinyleechina pushed a commit to branch 2.0.4-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/2.0.4-prepare by this push:
new 3158b2c [cherry-pick][2.0.4-prepare][API] Update process definition error (#8460)
3158b2c is described below
commit 3158b2c1794c2ae2f77d18be0ab38c15e50488d5
Author: xiangzihao <46...@qq.com>
AuthorDate: Mon Feb 21 14:54:40 2022 +0800
[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
---
.../2.0.4_schema/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 38964cc..06d8fcb 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 38964cc..06d8fcb 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
+)
+;