From e9ae926e040c94ce66666ae6c330c93918fa321c Mon Sep 17 00:00:00 2001 From: Unknwon Date: Fri, 27 May 2016 18:23:39 -0700 Subject: #809 fix wrong closed issue count when create closed issue via API Add start count corrector for Repository.NumClosedIssues --- models/repo.go | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index 1715067d..6cc16eca 100644 --- a/models/repo.go +++ b/models/repo.go @@ -1830,9 +1830,26 @@ func CheckRepoStats() { repoStatsCheck(checkers[i]) } - // FIXME: use checker when v0.9, stop supporting old fork repo format. + // ***** START: Repository.NumClosedIssues ***** + desc := "repository count 'num_closed_issues'" + results, err := x.Query("SELECT repo.id FROM `repository` repo WHERE repo.num_closed_issues!=(SELECT COUNT(*) FROM `issue` WHERE repo_id=repo.id AND is_closed=?)", true) + if err != nil { + log.Error(4, "Select %s: %v", desc, err) + } else { + for _, result := range results { + id := com.StrTo(result["id"]).MustInt64() + log.Trace("Updating %s: %d", desc, id) + _, err = x.Exec("UPDATE `repository` SET num_closed_issues=(SELECT COUNT(*) FROM `issue` WHERE repo_id=? AND is_closed=?) WHERE id=?", id, true, id) + if err != nil { + log.Error(4, "Update %s[%d]: %v", desc, id, err) + } + } + } + // ***** END: Repository.NumClosedIssues ***** + + // FIXME: use checker when stop supporting old fork repo format. // ***** START: Repository.NumForks ***** - results, err := x.Query("SELECT repo.id FROM `repository` repo WHERE repo.num_forks!=(SELECT COUNT(*) FROM `repository` WHERE fork_id=repo.id)") + results, err = x.Query("SELECT repo.id FROM `repository` repo WHERE repo.num_forks!=(SELECT COUNT(*) FROM `repository` WHERE fork_id=repo.id)") if err != nil { log.Error(4, "Select repository count 'num_forks': %v", err) } else { -- cgit v1.2.3