diff options
author | zeripath <art27@cantab.net> | 2021-03-02 13:07:01 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-02 14:07:01 +0100 |
commit | def964e57fae6dadf124f07d3b250b0a09a37546 (patch) | |
tree | 08e2ef5f93a7c7e6b775991977e8c0ba347c36cd /models | |
parent | f878c8231f9e8a29668e19d27c29eedb1c6dab0e (diff) | |
download | gitea-def964e57fae6dadf124f07d3b250b0a09a37546.tar.gz gitea-def964e57fae6dadf124f07d3b250b0a09a37546.zip |
Make searching issues by keyword case insensitive on DB (#14848)
Most DBs apart from SQLite will use a default Collation that is not case insensitive.
This means that SearchIssuesByKeyword becomes case sensitive for db indexing - in
contrast to the bleve and elastic indexers.
This PR simply uses UPPER(...) to do the LIKE - and although it may be more efficient
to change collations this would be a non-trivial task.
Fix #13663
Signed-off-by: Andrew Thornton <art27@cantab.net>
Diffstat (limited to 'models')
-rw-r--r-- | models/issue.go | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/models/issue.go b/models/issue.go index c0bafb54e4..58eb229f29 100644 --- a/models/issue.go +++ b/models/issue.go @@ -1706,17 +1706,18 @@ func GetRepoIssueStats(repoID, uid int64, filterMode int, isPull bool) (numOpen func SearchIssueIDsByKeyword(kw string, repoIDs []int64, limit, start int) (int64, []int64, error) { var repoCond = builder.In("repo_id", repoIDs) var subQuery = builder.Select("id").From("issue").Where(repoCond) + kw = strings.ToUpper(kw) var cond = builder.And( repoCond, builder.Or( - builder.Like{"name", kw}, - builder.Like{"content", kw}, + builder.Like{"UPPER(name)", kw}, + builder.Like{"UPPER(content)", kw}, builder.In("id", builder.Select("issue_id"). From("comment"). Where(builder.And( builder.Eq{"type": CommentTypeComment}, builder.In("issue_id", subQuery), - builder.Like{"content", kw}, + builder.Like{"UPPER(content)", kw}, )), ), ), |