Commit bdae6811 authored by charlie ablett's avatar charlie ablett

Merge branch 'match-exact-mr-analytics-query' into 'master'

Fix Merge Request analytics query optimization

See merge request gitlab-org/gitlab!53203
parents dc847b6a 7981c333
......@@ -22,7 +22,7 @@ module Resolvers
def only_count_is_selected_with_merged_at_filter?(args)
return unless lookahead
argument_names = args.except(:lookahead, :sort, :merged_before, :merged_after).keys
argument_names = args.compact.except(:lookahead, :sort, :merged_before, :merged_after).keys
# no extra filtering arguments are provided
return unless argument_names.empty?
......@@ -34,7 +34,7 @@ module Resolvers
# totalTimeToMerge
# }
allowed_selected_fields = [:count, :total_time_to_merge]
selected_fields = lookahead.selections.map(&:field).map(&:original_name)
selected_fields = lookahead.selections.map(&:field).map(&:original_name) - [:__typename] # ignore __typename meta field
# only the allowed_selected_fields are present
(selected_fields - allowed_selected_fields).empty?
......
......@@ -407,10 +407,12 @@ RSpec.describe 'getting merge request listings nested in a project' do
end
let(:query) do
# Note: __typename meta field is always requested by the FE
graphql_query_for(:project, { full_path: project.full_path },
<<~QUERY
mergeRequests(mergedAfter: "2020-01-01", mergedBefore: "2020-01-05", first: 0) {
mergeRequests(mergedAfter: "2020-01-01", mergedBefore: "2020-01-05", first: 0, sourceBranches: null, labels: null) {
count
__typename
}
QUERY
)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment