summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorGusted <williamzijl7@hotmail.com>2022-02-01 13:59:25 +0100
committerGitHub <noreply@github.com>2022-02-01 20:59:25 +0800
commitbb5f859ec0f853383b85cb16b189fbacf7397551 (patch)
tree6ee234ba1f3c70bb6b55f0d7cc831ecf7f668110 /models
parent7f2530e004c9908f9ee18b4060c8d4837a72f93b (diff)
downloadgitea-bb5f859ec0f853383b85cb16b189fbacf7397551.tar.gz
gitea-bb5f859ec0f853383b85cb16b189fbacf7397551.zip
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
Diffstat (limited to 'models')
-rw-r--r--models/issue.go8
1 files changed, 7 insertions, 1 deletions
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(