From 65ad0b95d9498aa2e1f48bcf7082508ebf8bace7 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 6 Mar 2021 15:54:09 +0800 Subject: [PATCH 1/2] Fix sqlmode bug --- models/issue.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/issue.go b/models/issue.go index 58eb229f2990e..d872e3678a7b0 100644 --- a/models/issue.go +++ b/models/issue.go @@ -1724,12 +1724,12 @@ func SearchIssueIDsByKeyword(kw string, repoIDs []int64, limit, start int) (int6 ) var ids = make([]int64, 0, limit) - err := x.Distinct("id").Table("issue").Where(cond).OrderBy("`updated_unix` DESC").Limit(limit, start).Find(&ids) + err := x.Select("id").Table("issue").Where(cond).OrderBy("`updated_unix` DESC").Limit(limit, start).Find(&ids) if err != nil { return 0, nil, err } - total, err := x.Distinct("id").Table("issue").Where(cond).Count() + total, err := x.Select("id").Table("issue").Where(cond).Count() if err != nil { return 0, nil, err } From a4804f6c870c670ed348acdb762cf9355e675850 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sat, 6 Mar 2021 20:30:36 +0800 Subject: [PATCH 2/2] distinct is necessary --- models/issue.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/models/issue.go b/models/issue.go index d872e3678a7b0..7ca8391029264 100644 --- a/models/issue.go +++ b/models/issue.go @@ -1724,12 +1724,21 @@ func SearchIssueIDsByKeyword(kw string, repoIDs []int64, limit, start int) (int6 ) var ids = make([]int64, 0, limit) - err := x.Select("id").Table("issue").Where(cond).OrderBy("`updated_unix` DESC").Limit(limit, start).Find(&ids) + var res = make([]struct { + ID int64 + UpdatedUnix int64 + }, 0, limit) + err := x.Distinct("id", "updated_unix").Table("issue").Where(cond). + OrderBy("`updated_unix` DESC").Limit(limit, start). + Find(&res) if err != nil { return 0, nil, err } + for _, r := range res { + ids = append(ids, r.ID) + } - total, err := x.Select("id").Table("issue").Where(cond).Count() + total, err := x.Distinct("id").Table("issue").Where(cond).Count() if err != nil { return 0, nil, err }