diff options
author | Felipe Artur <felipefac@gmail.com> | 2017-03-10 18:31:07 -0300 |
---|---|---|
committer | Felipe Artur <felipefac@gmail.com> | 2017-03-15 15:57:33 -0300 |
commit | a9734ca6b5fb5230d7f010c9da158066fde7a84e (patch) | |
tree | e795a09364e0e156f09f150fa3579317724231c5 /app/models/merge_request.rb | |
parent | fe4a18653be9fa4246d89e367a40bd171776432f (diff) | |
download | gitlab-ce-issue_27168.tar.gz |
Remove n+1 query for pipeline status when rendering merge requests listissue_27168
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r-- | app/models/merge_request.rb | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 0f7b8311588..d653b59db56 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -175,6 +175,15 @@ class MergeRequest < ActiveRecord::Base work_in_progress?(title) ? title : "WIP: #{title}" end + def self.pipelines_status_for_collection(merge_requests) + refs = merge_requests.pluck(:source_branch) + + Ci::Pipeline. + where( + id: Ci::Pipeline.select("MAX(id)").where(ref: refs).group(:ref) + ) + end + # `from` argument can be a Namespace or Project. def to_reference(from = nil, full: false) reference = "#{self.class.reference_prefix}#{iid}" |