diff options
author | Jan Provaznik <jprovaznik@gitlab.com> | 2017-12-15 11:21:12 +0100 |
---|---|---|
committer | Jan Provaznik <jprovaznik@gitlab.com> | 2017-12-21 15:43:14 +0100 |
commit | d2f1d585e10e3e728f968ceae6b275e4d9bc59f4 (patch) | |
tree | 018fb67888198edd68145f1065826b21940c5136 /app | |
parent | 889c7081f1c8bea2cd2cf7d50854babd7df92f72 (diff) | |
download | gitlab-ce-d2f1d585e10e3e728f968ceae6b275e4d9bc59f4.tar.gz |
Skip projects filter on merge requests searchjprovazn-search
When searching for merge requests, an additional subquery
is added which by default filters only merge requests which belong
to source or target project user has permission for.
This filter is not needed because more restrictive filter
which checks if user has permission for target project
is used in the query.
So unless a custom projects filter is used by user, it's possible
to skip the default projects filter and speed up the final query.
Related to #40540
Diffstat (limited to 'app')
-rw-r--r-- | app/services/search/global_service.rb | 5 | ||||
-rw-r--r-- | app/services/search/group_service.rb | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/app/services/search/global_service.rb b/app/services/search/global_service.rb index ff188102b62..92a32e703af 100644 --- a/app/services/search/global_service.rb +++ b/app/services/search/global_service.rb @@ -1,13 +1,16 @@ module Search class GlobalService attr_accessor :current_user, :params + attr_reader :default_project_filter def initialize(user, params) @current_user, @params = user, params.dup + @default_project_filter = true end def execute - Gitlab::SearchResults.new(current_user, projects, params[:search]) + Gitlab::SearchResults.new(current_user, projects, params[:search], + default_project_filter: default_project_filter) end def projects diff --git a/app/services/search/group_service.rb b/app/services/search/group_service.rb index 29478e3251f..b4efba68715 100644 --- a/app/services/search/group_service.rb +++ b/app/services/search/group_service.rb @@ -5,6 +5,7 @@ module Search def initialize(user, group, params) super(user, params) + @default_project_filter = false @group = group end |