Eliminate N+1 queries with authors and push_data_payload in Events API

This commit is contained in:
Stan Hu 2018-06-03 04:36:22 -07:00
parent 5426f09f4a
commit 6f4a0a92e6
3 changed files with 8 additions and 2 deletions

View File

@ -0,0 +1,5 @@
---
title: Eliminate N+1 queries with authors and push_data_payload in Events API
merge_request:
author:
type: performance

View File

@ -17,6 +17,7 @@ module API
def present_events(events)
events = events.reorder(created_at: params[:sort])
.with_associations
present paginate(events), with: Entities::Event
end

View File

@ -176,7 +176,7 @@ describe API::Events do
end
it 'avoids N+1 queries' do
control_count = ActiveRecord::QueryRecorder.new do
control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do
get api("/projects/#{private_project.id}/events", user), target_type: :merge_request
end.count
@ -184,7 +184,7 @@ describe API::Events do
expect do
get api("/projects/#{private_project.id}/events", user), target_type: :merge_request
end.not_to exceed_query_limit(control_count)
end.not_to exceed_all_query_limit(control_count)
expect(response).to have_gitlab_http_status(200)
expect(response).to include_pagination_headers