From 4b8fcc97e365d43afb3b3b7745b348ab4f4774d3 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Tue, 1 Mar 2022 09:23:28 +0800 Subject: [PATCH 1/2] Improve the deletion of issue --- models/issue.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/models/issue.go b/models/issue.go index 625374faaf4ed..cbc68dedf7c04 100644 --- a/models/issue.go +++ b/models/issue.go @@ -2043,17 +2043,17 @@ func deleteIssue(ctx context.Context, issue *Issue) error { } // delete actions assigned to this issue - var comments []int64 - if err := e.Table(new(Comment)).In("issue_id", issue.ID).Cols("id").Find(&comments); err != nil { + subQuery := builder.Select("`id`"). + From("`comment`"). + Where(builder.Eq{"`issue_id`": issue.ID}) + if _, err := e.In("comment_id = ?", subQuery).Delete(&Action{}); err != nil { return err } - for i := range comments { - if _, err := e.Where("comment_id = ?", comments[i]).Delete(&Action{}); err != nil { - return err - } - } - if _, err := e.Table("action").Where("repo_id = ?", issue.RepoID).In("op_type", ActionCreateIssue, ActionCreatePullRequest). - Where("content LIKE ?", strconv.FormatInt(issue.ID, 10)+"|%").Delete(&Action{}); err != nil { + + if _, err := e.Table("action").Where("repo_id = ?", issue.RepoID). + In("op_type", ActionCreateIssue, ActionCreatePullRequest). + Where("content LIKE ?", strconv.FormatInt(issue.ID, 10)+"|%"). + Delete(&Action{}); err != nil { return err } From 66915995333908bda9f470d59403ad03c2239e13 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 1 Mar 2022 02:57:02 +0100 Subject: [PATCH 2/2] fix --- models/issue.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/issue.go b/models/issue.go index cbc68dedf7c04..fd59ac0a4b495 100644 --- a/models/issue.go +++ b/models/issue.go @@ -2046,7 +2046,7 @@ func deleteIssue(ctx context.Context, issue *Issue) error { subQuery := builder.Select("`id`"). From("`comment`"). Where(builder.Eq{"`issue_id`": issue.ID}) - if _, err := e.In("comment_id = ?", subQuery).Delete(&Action{}); err != nil { + if _, err := e.In("comment_id", subQuery).Delete(&Action{}); err != nil { return err }