From bb5f859ec0f853383b85cb16b189fbacf7397551 Mon Sep 17 00:00:00 2001 From: Gusted Date: Tue, 1 Feb 2022 13:59:25 +0100 Subject: Fix non-ASCII search on database (#18437) Use `ToASCIIUpper` for SQLite database on issues search, this because `UPPER(x)` on SQLite only transforms ASCII letters. Resolves #18429 --- models/issue.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'models') diff --git a/models/issue.go b/models/issue.go index 3a61b085dc..8eb61f2050 100644 --- a/models/issue.go +++ b/models/issue.go @@ -23,6 +23,7 @@ import ( "code.gitea.io/gitea/modules/git" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/references" + "code.gitea.io/gitea/modules/setting" api "code.gitea.io/gitea/modules/structs" "code.gitea.io/gitea/modules/timeutil" "code.gitea.io/gitea/modules/util" @@ -1862,7 +1863,12 @@ func GetRepoIssueStats(repoID, uid int64, filterMode int, isPull bool) (numOpen, func SearchIssueIDsByKeyword(ctx context.Context, kw string, repoIDs []int64, limit, start int) (int64, []int64, error) { repoCond := builder.In("repo_id", repoIDs) subQuery := builder.Select("id").From("issue").Where(repoCond) - kw = strings.ToUpper(kw) + // SQLite's UPPER function only transforms ASCII letters. + if setting.Database.UseSQLite3 { + kw = util.ToUpperASCII(kw) + } else { + kw = strings.ToUpper(kw) + } cond := builder.And( repoCond, builder.Or( -- cgit v1.2.3