improve possible performance bottleneck (#28547) (#28578)

Backport #28547 by @lunny

Replace #28500

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
(cherry picked from commit 1a3803effd42df628090b436b44a902482413e45)
This commit is contained in:
Giteabot 2023-12-22 07:37:08 +08:00 committed by Earl Warren
parent 1f8d01c74d
commit 7ddb1291ea
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00

View file

@ -1166,14 +1166,9 @@ func DeleteComment(ctx context.Context, comment *Comment) error {
// UpdateCommentsMigrationsByType updates comments' migrations information via given git service type and original id and poster id // UpdateCommentsMigrationsByType updates comments' migrations information via given git service type and original id and poster id
func UpdateCommentsMigrationsByType(ctx context.Context, tp structs.GitServiceType, originalAuthorID string, posterID int64) error { func UpdateCommentsMigrationsByType(ctx context.Context, tp structs.GitServiceType, originalAuthorID string, posterID int64) error {
_, err := db.GetEngine(ctx).Table("comment"). _, err := db.GetEngine(ctx).Table("comment").
Where(builder.In("issue_id", Join("INNER", "issue", "issue.id = comment.issue_id").
builder.Select("issue.id"). Join("INNER", "repository", "issue.repo_id = repository.id").
From("issue"). Where("repository.original_service_type = ?", tp).
InnerJoin("repository", "issue.repo_id = repository.id").
Where(builder.Eq{
"repository.original_service_type": tp,
}),
)).
And("comment.original_author_id = ?", originalAuthorID). And("comment.original_author_id = ?", originalAuthorID).
Update(map[string]any{ Update(map[string]any{
"poster_id": posterID, "poster_id": posterID,