diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-01-07 12:10:47 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-01-07 12:10:47 +0000 |
commit | bf57aa76628654e15c2035e21fb29ab39fdea131 (patch) | |
tree | feb486f23361470e6b3360472b96afc7525d184e /app/finders | |
parent | d480c97736a444636eeb05266041a6e51649685d (diff) | |
download | gitlab-ce-bf57aa76628654e15c2035e21fb29ab39fdea131.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/finders')
-rw-r--r-- | app/finders/user_recent_events_finder.rb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/app/finders/user_recent_events_finder.rb b/app/finders/user_recent_events_finder.rb index 2473163290f..96120d9412f 100644 --- a/app/finders/user_recent_events_finder.rb +++ b/app/finders/user_recent_events_finder.rb @@ -49,9 +49,13 @@ class UserRecentEventsFinder # rubocop: disable CodeReuse/ActiveRecord def execute_optimized_multi(users) Gitlab::Pagination::Keyset::InOperatorOptimization::QueryBuilder.new( - scope: Event.reorder(:id), + scope: Event.reorder(id: :desc), array_scope: User.select(:id).where(id: users), - array_mapping_scope: -> (author_id_expression) { Event.where(Event.arel_table[:author_id].eq(author_id_expression)) }, + # Event model has a default scope { reorder(nil) } + # When a relation is rordered and used as a target when merging scope, + # its order takes a precedence and _overwrites_ the original scope's order. + # Thus we have to explicitly provide `reorder` for array_mapping_scope here. + array_mapping_scope: -> (author_id_expression) { Event.where(Event.arel_table[:author_id].eq(author_id_expression)).reorder(id: :desc) }, finder_query: -> (id_expression) { Event.where(Event.arel_table[:id].eq(id_expression)) } ) .execute |