diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2021-01-27 06:47:42 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-26 23:47:42 +0100 |
commit | d3aa4971c7beadc6c573464ef4359775d2844dab (patch) | |
tree | 65d6f9d8fabdb12c25796181913a054e4d225296 | |
parent | a598877fdf64a37b20eb1bf4372cbe798fc94486 (diff) | |
download | gitea-d3aa4971c7beadc6c573464ef4359775d2844dab.tar.gz gitea-d3aa4971c7beadc6c573464ef4359775d2844dab.zip |
Fix bug because of duplicated join (#14454)
* Fix bug because of duplicated join
* Move join into setupsession
* Fix bug
* Fix bug
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: Lauris BH <lauris@nix.lv>
-rw-r--r-- | models/issue.go | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/models/issue.go b/models/issue.go index 1374f82fbd..a7392633af 100644 --- a/models/issue.go +++ b/models/issue.go @@ -1210,7 +1210,7 @@ func (opts *IssuesOptions) setupSession(sess *xorm.Session) { } if opts.IsArchived != util.OptionalBoolNone { - sess.Join("INNER", "repository", "issue.repo_id = repository.id").And(builder.Eq{"repository.is_archived": opts.IsArchived.IsTrue()}) + sess.And(builder.Eq{"repository.is_archived": opts.IsArchived.IsTrue()}) } if opts.LabelIDs != nil { @@ -1266,6 +1266,8 @@ func CountIssuesByRepo(opts *IssuesOptions) (map[int64]int64, error) { sess := x.NewSession() defer sess.Close() + sess.Join("INNER", "repository", "`issue`.repo_id = `repository`.id") + opts.setupSession(sess) countsSlice := make([]*struct { @@ -1292,11 +1294,12 @@ func GetRepoIDsForIssuesOptions(opts *IssuesOptions, user *User) ([]int64, error sess := x.NewSession() defer sess.Close() + sess.Join("INNER", "repository", "`issue`.repo_id = `repository`.id") + opts.setupSession(sess) accessCond := accessibleRepositoryCondition(user) if err := sess.Where(accessCond). - Join("INNER", "repository", "`issue`.repo_id = `repository`.id"). Distinct("issue.repo_id"). Table("issue"). Find(&repoIDs); err != nil { @@ -1311,6 +1314,7 @@ func Issues(opts *IssuesOptions) ([]*Issue, error) { sess := x.NewSession() defer sess.Close() + sess.Join("INNER", "repository", "`issue`.repo_id = `repository`.id") opts.setupSession(sess) sortIssuesSession(sess, opts.SortType, opts.PriorityRepoID) @@ -1338,6 +1342,7 @@ func CountIssues(opts *IssuesOptions) (int64, error) { }, 0, 1) sess.Select("COUNT(issue.id) AS count").Table("issue") + sess.Join("INNER", "repository", "`issue`.repo_id = `repository`.id") opts.setupSession(sess) if err := sess.Find(&countsSlice); err != nil { return 0, fmt.Errorf("Find: %v", err) |