- 16 Jun, 2017 24 commits
-
-
Yorick Peterse authored
This method used to use a UNION, which would lead to it performing the same query twice; producing less than ideal performance. Further, in certain cases ActiveRecord could get confused and mess up the variable bindings, though it's not clear how/why exactly this happens. Fortunately we can work around all of this by building some of the WHERE conditions manually, allowing us to use a simple OR statement to get all the data we want without any of the above problems.
-
Yorick Peterse authored
This changes ProjectsFinder#init_collection so it no longer relies on a UNION. For example, to get starred projects of a user we used to run: SELECT projects.* FROM projects WHERE projects.pending_delete = 'f' AND ( projects.id IN ( SELECT projects.id FROM projects INNER JOIN users_star_projects ON users_star_projects.project_id = projects.id INNER JOIN project_authorizations ON projects.id = project_authorizations.project_id WHERE projects.pending_delete = 'f' AND project_authorizations.user_id = 1 AND users_star_projects.user_id = 1 UNION SELECT projects.id FROM projects INNER JOIN users_star_projects ON users_star_projects.project_id = projects.id WHERE projects.visibility_level IN (20, 10) AND users_star_projects.user_id = 1 ) ) ORDER BY projects.id DESC; With these changes the above query is turned into the following instead: SELECT projects.* FROM projects INNER JOIN users_star_projects ON users_star_projects.project_id = projects.id WHERE projects.pending_delete = 'f' AND ( EXISTS ( SELECT 1 FROM project_authorizations WHERE project_authorizations.user_id = 1 AND (project_id = projects.id) ) OR projects.visibility_level IN (20,10) ) AND users_star_projects.user_id = 1 ORDER BY projects.id DESC; This query in turn produces a better execution plan and takes less time, though the difference is only a few milliseconds (this however depends on the amount of data involved and additional conditions that may be added).
-
Rémy Coutable authored
Add French translations for Cycle Analytics, Project, and Repository pages. Closes #32998 and #33140 See merge request !12200
-
Rémy Coutable authored
Speed up used languages calculation on charts page See merge request !12212
-
Robert Speicher authored
set ENV['prometheus_multiproc_dir'] in config/boot.rb instead of config.ru See merge request !12201
-
Sean McGivern authored
We removed calls from our code to Rugged::Repository#fetch_attributes: <https://gitlab.com/gitlab-org/gitlab_git/commit/340e111e040ae847b614d35b4d3173ec48329015> However, we didn't remove calls from within Linguist. This method is only called when calculating the languages for a repository on the Charts page: <https://github.com/github/linguist/blob/v4.7.0/lib/linguist/lazy_blob.rb#L33-L36> We can safely use our own Gitlab::Git::Attributes here. On staging, for the GitLab CE repo, this makes the calculation take about a third of the time: # Before Benchmark.realtime do Linguist::Repository.new(repository.rugged, repository.rugged.head.target_id).languages end #=> 23.67193900188431 # After Benchmark.realtime do Linguist::Repository.new(repository.rugged, repository.rugged.head.target_id).languages end #=> 8.945212290156633
-
Rémy Coutable authored
Wait for all Ajax and Vue requests to complete in JavaScript tests Closes #33756 See merge request !12203
-
Achilleas Pipinellis authored
Convdev docs See merge request !12189
-
Rémy Coutable authored
Clarify job selection algorithm docs See merge request !12199
-
Rémy Coutable authored
Use the same way to invalidate cache from EE See merge request !12187
-
Achilleas Pipinellis authored
-
Dmitriy Zaporozhets authored
Expose correct path to group See merge request !12176
-
Alfredo Sumaran authored
-
Grzegorz Bizon authored
Fix intermittent spec failures in spec/finders/pipelines_finder_spec.rb See merge request !12207
-
Timothy Andrew authored
[ci skip]
-
Tim Zallmann authored
Replace PhantomJS with Chrome in Karma test runner (2nd attempt) Closes #33633 See merge request !12144
-
Achilleas Pipinellis authored
Issue board docs See merge request !12197
-
Achilleas Pipinellis authored
Jira integ docs See merge request !12196
-
Victor Wu authored
-
Achilleas Pipinellis authored
Confidential issues redesign docs See merge request !12195
-
Stan Hu authored
The spec was trying to sort pipelines by user ID, but the same user ID was being used for each pipeline in the spec. This is similar to #33001.
-
Stan Hu authored
-
Stan Hu authored
-
Stan Hu authored
-
- 15 Jun, 2017 16 commits
-
-
Stan Hu authored
From logs in #33756, we that it's possible for an Ajax call to be made before the middleware receives it. To prevent stray Ajax calls from breaking other specs, we need to wait for all scheduled calls to finish. Closes #33756
-
Jacob Schatz authored
Update ruby metrics endpoint text to be clearer See merge request !12157
-
Joshua Lambert authored
-
Pawel Chojnacki authored
-
Mike Greiling authored
-
Erwan GEORGET authored
-
Erwan GEORGET authored
-
Robert Speicher authored
Unify email layouts: devise emails See merge request !10483
-
Robert Speicher authored
Support a configurable Rails asset_host to allow for CDNs See merge request !12102
-
Grzegorz Bizon authored
Add a link to spec/migrations/README.md in the testing documentation See merge request !12191
-
Stan Hu authored
[ci skip]
-
Robert Speicher authored
Deserialize custom notifications Closes #24892 See merge request !12055
-
Joe Marty authored
-
Stan Hu authored
-
Victor Wu authored
-
Victor Wu authored
-