Skip to content

Commit f0471eb

Browse files
committed
Replace max( id ) in GetLatestCommitStatus
1 parent 8e79aed commit f0471eb

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

models/git/commit_status.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -269,23 +269,23 @@ type CommitStatusIndex struct {
269269

270270
// GetLatestCommitStatus returns all statuses with a unique context for a given commit.
271271
func GetLatestCommitStatus(ctx context.Context, repoID int64, sha string, listOptions db.ListOptions) ([]*CommitStatus, int64, error) {
272-
ids := make([]int64, 0, 10)
273-
sess := db.GetEngine(ctx).Table(&CommitStatus{}).
274-
Where("repo_id = ?", repoID).And("sha = ?", sha).
275-
Select("max( id ) as id").
276-
GroupBy("context_hash").OrderBy("max( id ) desc")
272+
base := db.GetEngine(ctx).Table(&CommitStatus{}).
273+
Where("repo_id = ?", repoID).And("sha = ?", sha)
274+
indices := make([]int64, 0, 10)
275+
sess := base.Select("max( `index` ) as `index`").
276+
GroupBy("context_hash").OrderBy("max( `index` ) desc")
277277
if !listOptions.IsListAll() {
278278
sess = db.SetSessionPagination(sess, &listOptions)
279279
}
280-
count, err := sess.FindAndCount(&ids)
280+
count, err := sess.FindAndCount(&indices)
281281
if err != nil {
282282
return nil, count, err
283283
}
284-
statuses := make([]*CommitStatus, 0, len(ids))
285-
if len(ids) == 0 {
284+
statuses := make([]*CommitStatus, 0, len(indices))
285+
if len(indices) == 0 {
286286
return statuses, count, nil
287287
}
288-
return statuses, count, db.GetEngine(ctx).In("id", ids).Find(&statuses)
288+
return statuses, count, base.And(builder.In("`index`", indices)).Find(&statuses)
289289
}
290290

291291
// GetLatestCommitStatusForPairs returns all statuses with a unique context for a given list of repo-sha pairs

0 commit comments

Comments
 (0)