summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancisco Javier López <fjlopez@gitlab.com>2019-09-12 15:17:32 +0200
committerFrancisco Javier López <fjlopez@gitlab.com>2019-09-12 15:17:32 +0200
commitb0c8f2b1ac86de681befb92a42cd629e57c2747b (patch)
treeae7bf5b24e142b2d095ae990843ed070458d764d
parentf0c9916acb340a2e59fa9f52c303b052d2b71d6f (diff)
downloadgitlab-ce-fj-26123-improve-snippet-search.tar.gz
Adding limit and avoid reordering in count queriesfj-26123-improve-snippet-search
-rw-r--r--lib/gitlab/snippet_search_results.rb21
1 files changed, 13 insertions, 8 deletions
diff --git a/lib/gitlab/snippet_search_results.rb b/lib/gitlab/snippet_search_results.rb
index ac3b219e0c7..c4b9872e7c9 100644
--- a/lib/gitlab/snippet_search_results.rb
+++ b/lib/gitlab/snippet_search_results.rb
@@ -3,6 +3,7 @@
module Gitlab
class SnippetSearchResults < SearchResults
include SnippetsHelper
+ include Gitlab::Utils::StrongMemoize
attr_reader :limit_snippets
@@ -25,33 +26,37 @@ module Gitlab
def formatted_count(scope)
case scope
when 'snippet_titles'
- snippet_titles_count.to_s
+ formatted_limited_count(limited_snippet_titles_count)
when 'snippet_blobs'
- snippet_blobs_count.to_s
+ formatted_limited_count(limited_snippet_blobs_count)
else
super
end
end
- def snippet_titles_count
- @snippet_titles_count ||= snippet_titles.count
+ def limited_snippet_titles_count
+ strong_memoize(:limited_snippet_titles_count) do
+ limited_count(snippet_titles)
+ end
end
- def snippet_blobs_count
- @snippet_blobs_count ||= snippet_blobs.count
+ def limited_snippet_blobs_count
+ strong_memoize(:limited_snippet_blobs_count) do
+ limited_count(snippet_blobs)
+ end
end
private
# rubocop: disable CodeReuse/ActiveRecord
def snippet_titles
- limit_snippets.search(query).order('updated_at DESC').includes(:author)
+ limit_snippets.search(query).reorder('updated_at DESC').includes(:author)
end
# rubocop: enable CodeReuse/ActiveRecord
# rubocop: disable CodeReuse/ActiveRecord
def snippet_blobs
- limit_snippets.search_code(query).order('updated_at DESC').includes(:author)
+ limit_snippets.search_code(query).reorder('updated_at DESC').includes(:author)
end
# rubocop: enable CodeReuse/ActiveRecord