forked from kevadesu/forgejo
Use conditions but not repo ids as query condition (#16839)
* Use conditions but not repo ids as query condition * Improve the performance of pulls/issue * Remove duplicated code * fix lint * Fix bug * Fix stats * More fixes * Fix build * Fix lint * Fix test * Fix build * Adjust the logic * Merge * Fix conflicts * improve the performance * Add comments for the query conditions functions * Some improvements
This commit is contained in:
parent
8fa97a25f0
commit
8ce1b539b1
11 changed files with 401 additions and 427 deletions
|
@ -25,6 +25,9 @@ const (
|
|||
func (issues IssueList) getRepoIDs() []int64 {
|
||||
repoIDs := make(map[int64]struct{}, len(issues))
|
||||
for _, issue := range issues {
|
||||
if issue.Repo != nil {
|
||||
continue
|
||||
}
|
||||
if _, ok := repoIDs[issue.RepoID]; !ok {
|
||||
repoIDs[issue.RepoID] = struct{}{}
|
||||
}
|
||||
|
@ -56,8 +59,12 @@ func (issues IssueList) loadRepositories(e db.Engine) ([]*repo_model.Repository,
|
|||
}
|
||||
|
||||
for _, issue := range issues {
|
||||
issue.Repo = repoMaps[issue.RepoID]
|
||||
if issue.PullRequest != nil {
|
||||
if issue.Repo == nil {
|
||||
issue.Repo = repoMaps[issue.RepoID]
|
||||
} else {
|
||||
repoMaps[issue.RepoID] = issue.Repo
|
||||
}
|
||||
if issue.PullRequest != nil && issue.PullRequest.BaseRepo == nil {
|
||||
issue.PullRequest.BaseRepo = issue.Repo
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue