diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2024-03-25 02:51:08 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-24 18:51:08 +0000 |
commit | 3f26fe2fa2c7141c9e622297e50a70f3e0003e4d (patch) | |
tree | 06ada3bdd9f671e816f2773dcf9ca617e2f0e017 /models/issues/issue_stats.go | |
parent | ec3d467f15a683b305ac165c3eba6683628dcb25 (diff) | |
download | gitea-3f26fe2fa2c7141c9e622297e50a70f3e0003e4d.tar.gz gitea-3f26fe2fa2c7141c9e622297e50a70f3e0003e4d.zip |
Use db.ListOptions directly instead of Paginator interface to make it easier to use and fix performance of /pulls and /issues (#29990)
This PR uses `db.ListOptions` instead of `Paginor` to make the code
simpler.
And it also fixed the performance problem when viewing /pulls or
/issues. Before the counting in fact will also do the search.
---------
Co-authored-by: Jason Song <i@wolfogre.com>
Co-authored-by: silverwind <me@silverwind.io>
Diffstat (limited to 'models/issues/issue_stats.go')
-rw-r--r-- | models/issues/issue_stats.go | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/models/issues/issue_stats.go b/models/issues/issue_stats.go index 32c5674fc9..39326616f8 100644 --- a/models/issues/issue_stats.go +++ b/models/issues/issue_stats.go @@ -68,13 +68,17 @@ func CountIssuesByRepo(ctx context.Context, opts *IssuesOptions) (map[int64]int6 } // CountIssues number return of issues by given conditions. -func CountIssues(ctx context.Context, opts *IssuesOptions) (int64, error) { +func CountIssues(ctx context.Context, opts *IssuesOptions, otherConds ...builder.Cond) (int64, error) { sess := db.GetEngine(ctx). Select("COUNT(issue.id) AS count"). Table("issue"). Join("INNER", "repository", "`issue`.repo_id = `repository`.id") applyConditions(sess, opts) + for _, cond := range otherConds { + sess.And(cond) + } + return sess.Count() } |