Skip to content

Commit cb68e01

Browse files
earl-warrenGusted
andauthored
simplify issue deletion query (#27312)
- There's no need for `In` to be used, as it's a single parameter that's being passed. Refs: https://codeberg.org/forgejo/forgejo/pulls/1521 (cherry picked from commit 4a4955f43ae7fc50cfe3b48409a0a10c82625a19) Co-authored-by: Gusted <[email protected]>
1 parent c9cc57f commit cb68e01

File tree

2 files changed

+18
-47
lines changed

2 files changed

+18
-47
lines changed

models/issues/issue_update.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -510,17 +510,6 @@ func UpdateIssueDeadline(ctx context.Context, issue *Issue, deadlineUnix timeuti
510510
return committer.Commit()
511511
}
512512

513-
// DeleteInIssue delete records in beans with external key issue_id = ?
514-
func DeleteInIssue(ctx context.Context, issueID int64, beans ...any) error {
515-
e := db.GetEngine(ctx)
516-
for _, bean := range beans {
517-
if _, err := e.In("issue_id", issueID).Delete(bean); err != nil {
518-
return err
519-
}
520-
}
521-
return nil
522-
}
523-
524513
// FindAndUpdateIssueMentions finds users mentioned in the given content string, and saves them in the database.
525514
func FindAndUpdateIssueMentions(ctx context.Context, issue *Issue, doer *user_model.User, content string) (mentions []*user_model.User, err error) {
526515
rawMentions := references.FindAllMentionsMarkdown(content)

services/issue/issue.go

Lines changed: 18 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -262,45 +262,27 @@ func deleteIssue(ctx context.Context, issue *issues_model.Issue) error {
262262
}
263263

264264
// delete all database data still assigned to this issue
265-
if err := issues_model.DeleteInIssue(ctx, issue.ID,
266-
&issues_model.ContentHistory{},
267-
&issues_model.Comment{},
268-
&issues_model.IssueLabel{},
269-
&issues_model.IssueDependency{},
270-
&issues_model.IssueAssignees{},
271-
&issues_model.IssueUser{},
272-
&activities_model.Notification{},
273-
&issues_model.Reaction{},
274-
&issues_model.IssueWatch{},
275-
&issues_model.Stopwatch{},
276-
&issues_model.TrackedTime{},
277-
&project_model.ProjectIssue{},
278-
&repo_model.Attachment{},
279-
&issues_model.PullRequest{},
265+
if err := db.DeleteBeans(ctx,
266+
&issues_model.ContentHistory{IssueID: issue.ID},
267+
&issues_model.Comment{IssueID: issue.ID},
268+
&issues_model.IssueLabel{IssueID: issue.ID},
269+
&issues_model.IssueDependency{IssueID: issue.ID},
270+
&issues_model.IssueAssignees{IssueID: issue.ID},
271+
&issues_model.IssueUser{IssueID: issue.ID},
272+
&activities_model.Notification{IssueID: issue.ID},
273+
&issues_model.Reaction{IssueID: issue.ID},
274+
&issues_model.IssueWatch{IssueID: issue.ID},
275+
&issues_model.Stopwatch{IssueID: issue.ID},
276+
&issues_model.TrackedTime{IssueID: issue.ID},
277+
&project_model.ProjectIssue{IssueID: issue.ID},
278+
&repo_model.Attachment{IssueID: issue.ID},
279+
&issues_model.PullRequest{IssueID: issue.ID},
280+
&issues_model.Comment{RefIssueID: issue.ID},
281+
&issues_model.IssueDependency{DependencyID: issue.ID},
282+
&issues_model.Comment{DependentIssueID: issue.ID},
280283
); err != nil {
281284
return err
282285
}
283286

284-
// References to this issue in other issues
285-
if _, err := db.DeleteByBean(ctx, &issues_model.Comment{
286-
RefIssueID: issue.ID,
287-
}); err != nil {
288-
return err
289-
}
290-
291-
// Delete dependencies for issues in other repositories
292-
if _, err := db.DeleteByBean(ctx, &issues_model.IssueDependency{
293-
DependencyID: issue.ID,
294-
}); err != nil {
295-
return err
296-
}
297-
298-
// delete from dependent issues
299-
if _, err := db.DeleteByBean(ctx, &issues_model.Comment{
300-
DependentIssueID: issue.ID,
301-
}); err != nil {
302-
return err
303-
}
304-
305287
return committer.Commit()
306288
}

0 commit comments

Comments
 (0)