Skip to content

Fix N+1 with source_projects in merge requests API

Stan Hu requested to merge sh-fix-source-project-nplus-one into master

Now that we are checking MergeRequest#for_fork?, we also need the source project preloaded for a merge request.

Seen in http://profiler.gitlap.com/20180518/3d643020-3c77-43a4-b1a4-f63e77978d06.txt.gz:

D, [2018-05-19T02:16:44.609367 #123552] DEBUG -- :   CACHE (6.1ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = 13083 LIMIT 1  [["id", 13083]]
D, [2018-05-19T02:16:44.618990 #123552] DEBUG -- :   ↳ app/models/merge_request.rb:744:in `for_fork?'
D, [2018-05-19T02:16:44.619398 #123552] DEBUG -- :   ↳ lib/api/entities.rb:564:in `block in <class:MergeRequestBasic>'
D, [2018-05-19T02:16:44.619734 #123552] DEBUG -- :   ↳ ee/lib/gitlab/jira/middleware.rb:15:in `call'
D, [2018-05-19T02:16:44.678438 #123552] DEBUG -- :   CACHE (0.2ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = 13083 LIMIT 1  [["id", 13083]]
D, [2018-05-19T02:16:44.682321 #123552] DEBUG -- :   ↳ app/models/merge_request.rb:744:in `for_fork?'
D, [2018-05-19T02:16:44.682540 #123552] DEBUG -- :   ↳ lib/api/entities.rb:564:in `block in <class:MergeRequestBasic>'
D, [2018-05-19T02:16:44.688762 #123552] DEBUG -- :   ↳ ee/lib/gitlab/jira/middleware.rb:15:in `call'
D, [2018-05-19T02:16:44.748053 #123552] DEBUG -- :   CACHE (6.1ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = 13083 LIMIT 1  [["id", 13083]]
D, [2018-05-19T02:16:44.751799 #123552] DEBUG -- :   ↳ app/models/merge_request.rb:744:in `for_fork?'
D, [2018-05-19T02:16:44.757853 #123552] DEBUG -- :   ↳ lib/api/entities.rb:564:in `block in <class:MergeRequestBasic>'
D, [2018-05-19T02:16:44.758179 #123552] DEBUG -- :   ↳ ee/lib/gitlab/jira/middleware.rb:15:in `call'
D, [2018-05-19T02:16:44.811117 #123552] DEBUG -- :   CACHE (0.2ms)  SELECT  "projects".* FROM "projects" WHERE "projects"."id" = 1915107 LIMIT 1  [["id", 1915107]]
D, [2018-05-19T02:16:44.820466 #123552] DEBUG -- :   ↳ app/models/merge_request.rb:744:in `for_fork?'
D, [2018-05-19T02:16:44.820709 #123552] DEBUG -- :   ↳ lib/api/entities.rb:564:in `block in <class:MergeRequestBasic>'
D, [2018-05-19T02:16:44.820975 #123552] DEBUG -- :   ↳ ee/lib/gitlab/jira/middleware.rb:15:in `call'
Edited by Stan Hu

Merge request reports