From a1d796f521919e653f5ceb64d7d361a64cc0139f Mon Sep 17 00:00:00 2001 From: Lauris BH Date: Fri, 14 Feb 2020 14:42:30 +0200 Subject: Index code and stats only for non-empty repositories (#10251) Fix test and switch to unique queue Fix MySQL support when deleting old statistics --- models/repo_indexer.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'models/repo_indexer.go') diff --git a/models/repo_indexer.go b/models/repo_indexer.go index 1f5ab928ab..de3358f55a 100644 --- a/models/repo_indexer.go +++ b/models/repo_indexer.go @@ -34,6 +34,8 @@ func GetUnindexedRepos(indexerType RepoIndexerType, maxRepoID int64, page, pageS ids := make([]int64, 0, 50) cond := builder.Cond(builder.IsNull{ "repo_indexer_status.id", + }).And(builder.Eq{ + "repository.is_empty": false, }) sess := x.Table("repository").Join("LEFT OUTER", "repo_indexer_status", "repository.id = repo_indexer_status.repo_id AND repo_indexer_status.indexer_type = ?", indexerType) if maxRepoID > 0 { @@ -66,11 +68,11 @@ func (repo *Repository) getIndexerStatus(e Engine, indexerType RepoIndexerType) return repo.StatsIndexerStatus, nil } } - status := &RepoIndexerStatus{RepoID: repo.ID, IndexerType: indexerType} - has, err := e.Get(status) - if err != nil { + status := &RepoIndexerStatus{RepoID: repo.ID} + if has, err := e.Where("`indexer_type` = ?", indexerType).Get(status); err != nil { return nil, err } else if !has { + status.IndexerType = indexerType status.CommitSha = "" } switch indexerType { -- cgit v1.2.3