Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@gitlab.com>2019-03-12 11:13:21 +0300
committerSean McGivern <sean@gitlab.com>2019-03-13 13:54:43 +0300
commiteba5672077f5d7956fc8f7db583136b3ccb451b5 (patch)
tree59dacd4c67a6909e5abdbc364bcd7c5e0ebfba2b /app/models/label.rb
parentf859b0e1e7f257a962866c98eca430c1338b7dba (diff)
Allow filtering labels by a single character
When we use Gitlab::SQL::Pattern, this typically relates to a trigram index. As the 'tri' indicates, we need at least three characters to be able to use that index. Labels don't have a trigram index, because we never allow you to search for them globally: it's always in the context of a project or a group. In that context, it's just as fast to search for a single character (in general) because there is already a pretty specific index being used.
Diffstat (limited to 'app/models/label.rb')
-rw-r--r--app/models/label.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/app/models/label.rb b/app/models/label.rb
index 1c3db3eb35d..96bdb7f17c5 100644
--- a/app/models/label.rb
+++ b/app/models/label.rb
@@ -126,6 +126,13 @@ class Label < ActiveRecord::Base
fuzzy_search(query, [:title, :description])
end
+ # Override Gitlab::SQL::Pattern.min_chars_for_partial_matching as
+ # label queries are never global, and so will not use a trigram
+ # index. That means we can have just one character in the LIKE.
+ def self.min_chars_for_partial_matching
+ 1
+ end
+
def open_issues_count(user = nil)
issues_count(user, state: 'opened')
end