aboutsummaryrefslogtreecommitdiffstats
path: root/routers/web/repo
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2025-01-06 18:50:09 -0800
committerGitHub <noreply@github.com>2025-01-07 10:50:09 +0800
commit98637fe76e70d8b963827354b2eed2e8f151ebd6 (patch)
tree7ade9d7c63a805407c7a58b3cfefcd43da8cf2b8 /routers/web/repo
parent485d184a5c7c4de4082ef2c1743f8a3d14491468 (diff)
downloadgitea-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.go10
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