Eliminate N+1 queries with authors and push_data_payload in Events API
This commit is contained in:
parent
5426f09f4a
commit
6f4a0a92e6
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Eliminate N+1 queries with authors and push_data_payload in Events API
|
||||
merge_request:
|
||||
author:
|
||||
type: performance
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue