diff options
author | Hiroyuki Sato <sathiroyuki@gmail.com> | 2017-08-22 19:51:53 +0300 |
---|---|---|
committer | Hiroyuki Sato <sathiroyuki@gmail.com> | 2017-08-25 12:41:43 +0300 |
commit | 9e203582b367a1b84035572261a79b62e22bfeaa (patch) | |
tree | 34c594804a5d68eb3fbd4eee90bc3dfc9b134c46 /lib/gitlab/sql | |
parent | 539ed0a6375d5bb6d734e688b801373e4b8006f9 (diff) |
Improve AutocompleteController#user.json performance
Diffstat (limited to 'lib/gitlab/sql')
-rw-r--r-- | lib/gitlab/sql/pattern.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/gitlab/sql/pattern.rb b/lib/gitlab/sql/pattern.rb new file mode 100644 index 00000000000..47ea19994a2 --- /dev/null +++ b/lib/gitlab/sql/pattern.rb @@ -0,0 +1,29 @@ +module Gitlab + module SQL + class Pattern + MIN_CHARS_FOR_PARTIAL_MATCHING = 3 + + attr_reader :query + + def initialize(query) + @query = query + end + + def to_sql + if exact_matching? + query + else + "%#{query}%" + end + end + + def exact_matching? + !partial_matching? + end + + def partial_matching? + @query.length >= MIN_CHARS_FOR_PARTIAL_MATCHING + end + end + end +end |