diff options
author | Markus Koller <mkoller@gitlab.com> | 2019-09-02 13:12:20 +0200 |
---|---|---|
committer | Markus Koller <mkoller@gitlab.com> | 2019-09-10 15:24:28 +0200 |
commit | 60755fbc406bd25ab526339899f97a2b27aeb272 (patch) | |
tree | a60f6fa9beb0c4ccdc27c5f7734c14bc34ad2d21 /lib/gitlab/issuable_metadata.rb | |
parent | 08b0613302ec813c0735e2c0447a3f7683d7ab87 (diff) | |
download | gitlab-ce-60755fbc406bd25ab526339899f97a2b27aeb272.tar.gz |
Optimize queries for snippet listings
- Avoid N+1 queries for authors and comment counts
- Avoid an additional snippet existence query
Diffstat (limited to 'lib/gitlab/issuable_metadata.rb')
-rw-r--r-- | lib/gitlab/issuable_metadata.rb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/gitlab/issuable_metadata.rb b/lib/gitlab/issuable_metadata.rb index be73bcd5506..6f760751b0f 100644 --- a/lib/gitlab/issuable_metadata.rb +++ b/lib/gitlab/issuable_metadata.rb @@ -19,7 +19,7 @@ module Gitlab return {} if issuable_ids.empty? - issuable_note_count = ::Note.count_for_collection(issuable_ids, collection_type) + issuable_notes_count = ::Note.count_for_collection(issuable_ids, collection_type) issuable_votes_count = ::AwardEmoji.votes_for_collection(issuable_ids, collection_type) issuable_merge_requests_count = if collection_type == 'Issue' @@ -31,7 +31,7 @@ module Gitlab issuable_ids.each_with_object({}) do |id, issuable_meta| downvotes = issuable_votes_count.find { |votes| votes.awardable_id == id && votes.downvote? } upvotes = issuable_votes_count.find { |votes| votes.awardable_id == id && votes.upvote? } - notes = issuable_note_count.find { |notes| notes.noteable_id == id } + notes = issuable_notes_count.find { |notes| notes.noteable_id == id } merge_requests = issuable_merge_requests_count.find { |mr| mr.first == id } issuable_meta[id] = ::Issuable::IssuableMeta.new( |