summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChantal Rollison <crollison@gitlab.com>2018-07-10 07:35:50 -0700
committerChantal Rollison <crollison@gitlab.com>2018-07-11 08:14:14 -0700
commitb7f2a64509b930f1bee57e271440ca4ac74fa579 (patch)
tree88e2ea34aed243e282545bcfd7c8962d4c1f7005
parent0abda34c4ceb904140959ffeac55d686b0b0db2d (diff)
downloadgitlab-ce-ccr/slow_snippet_search.tar.gz
Add count limit to snippet searchccr/slow_snippet_search
-rw-r--r--changelogs/unreleased/cr-add-count-limit-to-snippet-search.yml5
-rw-r--r--lib/gitlab/snippet_search_results.rb27
2 files changed, 21 insertions, 11 deletions
diff --git a/changelogs/unreleased/cr-add-count-limit-to-snippet-search.yml b/changelogs/unreleased/cr-add-count-limit-to-snippet-search.yml
new file mode 100644
index 00000000000..8ae43659d8d
--- /dev/null
+++ b/changelogs/unreleased/cr-add-count-limit-to-snippet-search.yml
@@ -0,0 +1,5 @@
+---
+title: Adds a count limit to the number of snippet search results.
+merge_request: 20531
+author:
+type: fixed
diff --git a/lib/gitlab/snippet_search_results.rb b/lib/gitlab/snippet_search_results.rb
index 4f86b3e8f73..45562237157 100644
--- a/lib/gitlab/snippet_search_results.rb
+++ b/lib/gitlab/snippet_search_results.rb
@@ -9,23 +9,28 @@ module Gitlab
@query = query
end
- def objects(scope, page = nil)
- case scope
- when 'snippet_titles'
- snippet_titles.page(page).per(per_page)
- when 'snippet_blobs'
- snippet_blobs.page(page).per(per_page)
- else
- super(scope, nil, false)
- end
+ def objects(scope, page = nil, without_count = true)
+ collection = case scope
+ when 'snippet_titles'
+ snippet_titles.page(page).per(per_page)
+ when 'snippet_blobs'
+ snippet_blobs.page(page).per(per_page)
+ else
+ super(scope, nil, false)
+ end
+ without_count ? collection.without_count : collection
end
def snippet_titles_count
- @snippet_titles_count ||= snippet_titles.count
+ @snippet_titles_count ||= snippet_titles.limit(count_limit).count
end
def snippet_blobs_count
- @snippet_blobs_count ||= snippet_blobs.count
+ @snippet_blobs_count ||= snippet_blobs.limit(count_limit).count
+ end
+
+ def count_limit
+ 1001
end
private