diff options
Diffstat (limited to 'app/finders/concerns/merged_at_filter.rb')
-rw-r--r-- | app/finders/concerns/merged_at_filter.rb | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/app/finders/concerns/merged_at_filter.rb b/app/finders/concerns/merged_at_filter.rb index e44354f36d1..581bcca3c25 100644 --- a/app/finders/concerns/merged_at_filter.rb +++ b/app/finders/concerns/merged_at_filter.rb @@ -10,7 +10,7 @@ module MergedAtFilter mr_metrics_scope = mr_metrics_scope.merged_after(merged_after) if merged_after.present? mr_metrics_scope = mr_metrics_scope.merged_before(merged_before) if merged_before.present? - join_metrics(items, mr_metrics_scope) + items.join_metrics.merge(mr_metrics_scope) end def merged_after @@ -20,22 +20,4 @@ module MergedAtFilter def merged_before params[:merged_before] end - - # rubocop: disable CodeReuse/ActiveRecord - # - # This join optimizes merged_at queries when the finder is invoked for a project by moving - # the target_project_id condition from merge_requests table to merge_request_metrics table. - def join_metrics(items, mr_metrics_scope) - scope = if project_id = items.where_values_hash["target_project_id"] - # removing the original merge_requests.target_project_id condition - items = items.unscope(where: :target_project_id) - # adding the target_project_id condition to merge_request_metrics - items.join_metrics(project_id) - else - items.join_metrics - end - - scope.merge(mr_metrics_scope) - end - # rubocop: enable CodeReuse/ActiveRecord end |