diff options
author | Andrew Newdigate <andrew@gitlab.com> | 2017-10-02 20:16:02 +0100 |
---|---|---|
committer | Andrew Newdigate <andrew@gitlab.com> | 2017-10-02 20:16:02 +0100 |
commit | ee6d0162633b8ebef7b21de6f849d7788a557ae1 (patch) | |
tree | e2cd414418f52f6e01a65118ee5415044cb226cd | |
parent | fd8c56008fdadf45bd2ed1e0c50fbea51424a176 (diff) | |
download | gitlab-ce-an_noteable_grouped_diff_discussions_n_plus_one_exclusion.tar.gz |
Workaround for https://gitlab.com/gitlab-org/gitlab-ce/issues/38688an_noteable_grouped_diff_discussions_n_plus_one_exclusion
-rw-r--r-- | app/models/note.rb | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/app/models/note.rb b/app/models/note.rb index f44590e2144..2d2847401f2 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -137,12 +137,15 @@ class Note < ActiveRecord::Base def grouped_diff_discussions(diff_refs = nil) groups = {} - diff_notes.fresh.discussions.each do |discussion| - line_code = discussion.line_code_in_diffs(diff_refs) - - if line_code - discussions = groups[line_code] ||= [] - discussions << discussion + # n+1: https://gitlab.com/gitlab-org/gitlab-ce/issues/38688 + Gitlab::GitalyClient.allow_n_plus_1_calls do + diff_notes.fresh.discussions.each do |discussion| + line_code = discussion.line_code_in_diffs(diff_refs) + + if line_code + discussions = groups[line_code] ||= [] + discussions << discussion + end end end |