diff options
author | Francisco Javier López <fjlopez@gitlab.com> | 2019-09-12 15:17:32 +0200 |
---|---|---|
committer | Francisco Javier López <fjlopez@gitlab.com> | 2019-09-12 15:17:32 +0200 |
commit | b0c8f2b1ac86de681befb92a42cd629e57c2747b (patch) | |
tree | ae7bf5b24e142b2d095ae990843ed070458d764d | |
parent | f0c9916acb340a2e59fa9f52c303b052d2b71d6f (diff) | |
download | gitlab-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.rb | 21 |
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 |