diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2025-01-06 18:50:09 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-07 10:50:09 +0800 |
commit | 98637fe76e70d8b963827354b2eed2e8f151ebd6 (patch) | |
tree | 7ade9d7c63a805407c7a58b3cfefcd43da8cf2b8 /routers/web/repo | |
parent | 485d184a5c7c4de4082ef2c1743f8a3d14491468 (diff) | |
download | gitea-98637fe76e70d8b963827354b2eed2e8f151ebd6.tar.gz gitea-98637fe76e70d8b963827354b2eed2e8f151ebd6.zip |
Filter reviews of one pull request in memory instead of database to reduce slow response because of lacking database index (#33106)
This PR fixes a performance problem when reviewing a pull request in a
big instance which have many records in the `review` table.
Traditionally, we should add more indexes in that table. But since
dismissed reviews of 1 pull request will not be too many as expected in
a common repository. Filtering reviews in the memory should be more
quick .
---------
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Diffstat (limited to 'routers/web/repo')
-rw-r--r-- | routers/web/repo/issue_page_meta.go | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/routers/web/repo/issue_page_meta.go b/routers/web/repo/issue_page_meta.go index b536b04d7c..272343f460 100644 --- a/routers/web/repo/issue_page_meta.go +++ b/routers/web/repo/issue_page_meta.go @@ -193,6 +193,7 @@ func (d *IssuePageMetaData) retrieveReviewersData(ctx *context.Context) { var posterID int64 var isClosed bool var reviews issues_model.ReviewList + var err error if d.Issue == nil { if ctx.Doer != nil { @@ -206,14 +207,7 @@ func (d *IssuePageMetaData) retrieveReviewersData(ctx *context.Context) { isClosed = d.Issue.IsClosed || d.Issue.PullRequest.HasMerged - originalAuthorReviews, err := issues_model.GetReviewersFromOriginalAuthorsByIssueID(ctx, d.Issue.ID) - if err != nil { - ctx.ServerError("GetReviewersFromOriginalAuthorsByIssueID", err) - return - } - data.OriginalReviews = originalAuthorReviews - - reviews, err = issues_model.GetReviewsByIssueID(ctx, d.Issue.ID) + reviews, data.OriginalReviews, err = issues_model.GetReviewsByIssueID(ctx, d.Issue.ID) if err != nil { ctx.ServerError("GetReviewersByIssueID", err) return |