mirror of
https://github.com/go-gitea/gitea
synced 2025-07-03 09:07:19 +00:00
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>
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user