- 27 2月, 2018 2 次提交
-
-
由 Rémy Coutable 提交于
Signed-off-by: NRémy Coutable <remy@rymai.me>
-
由 Rémy Coutable 提交于
Move it to Members::ApproveAccessRequestService. Also, note that there was a double audit event log for access request destruction. Signed-off-by: NRémy Coutable <remy@rymai.me>
-
- 26 2月, 2018 2 次提交
-
-
由 Ahmad Sherif 提交于
-
由 Andreas Brandl 提交于
Note that `ghost IS NOT TRUE` is equivalent to `ghost = 'f' OR ghost is null`: (true), (false), (NULL)) AS t (flag); flag | ?column? | ?column? ------+----------+---------- t | f | f f | t | t | t | t (3 rows) This makes it a little easier to create partial indexes for this (as only one condition is needed). Closes #43304.
-
- 24 2月, 2018 1 次提交
-
-
由 Paweł Chojnacki 提交于
-
- 23 2月, 2018 9 次提交
-
-
由 Yorick Peterse 提交于
Instead of only exposing a User to slash commands we now also expose the ChatName object that the User object is retrieved from. This is necessary for GitLab Chatops as we need for example the user ID of the chat user.
-
由 Nick Thomas 提交于
-
由 Matija Čupić 提交于
-
由 Matija Čupić 提交于
-
由 Matija Čupić 提交于
-
由 Matija Čupić 提交于
-
由 Yorick Peterse 提交于
This optimises searching for users when using queries consisting out of one or two characters such as "ab". We optimise such cases by searching for `LOWER(name)` and `LOWER(username)` instead of using `ILIKE`. Using `LOWER` produces a _much_ better performing query. For example, when searching for all users matching the term "a" we'd produce the following plan: Limit (cost=637.69..637.74 rows=20 width=805) (actual time=41.983..41.995 rows=20 loops=1) Buffers: shared hit=8330 -> Sort (cost=637.69..638.61 rows=368 width=805) (actual time=41.982..41.990 rows=20 loops=1) Sort Key: (CASE WHEN ((name)::text = 'a'::text) THEN 0 WHEN ((username)::text = 'a'::text) THEN 1 WHEN ((email)::text = 'a'::text) THEN 2 ELSE 3 END), name Sort Method: top-N heapsort Memory: 35kB Buffers: shared hit=8330 -> Bitmap Heap Scan on users (cost=75.47..627.89 rows=368 width=805) (actual time=9.452..41.305 rows=277 loops=1) Recheck Cond: (((name)::text ~~* 'a'::text) OR ((username)::text ~~* 'a'::text) OR ((email)::text = 'a'::text)) Rows Removed by Index Recheck: 7601 Heap Blocks: exact=7636 Buffers: shared hit=8327 -> BitmapOr (cost=75.47..75.47 rows=368 width=0) (actual time=8.290..8.290 rows=0 loops=1) Buffers: shared hit=691 -> Bitmap Index Scan on index_users_on_name_trigram (cost=0.00..38.85 rows=180 width=0) (actual time=4.369..4.369 rows=4071 loops=1) Index Cond: ((name)::text ~~* 'a'::text) Buffers: shared hit=360 -> Bitmap Index Scan on index_users_on_username_trigram (cost=0.00..34.41 rows=188 width=0) (actual time=3.896..3.896 rows=4140 loops=1) Index Cond: ((username)::text ~~* 'a'::text) Buffers: shared hit=328 -> Bitmap Index Scan on users_email_key (cost=0.00..1.94 rows=1 width=0) (actual time=0.022..0.022 rows=0 loops=1) Index Cond: ((email)::text = 'a'::text) Buffers: shared hit=3 Planning time: 3.912 ms Execution time: 42.171 ms With the changes in this commit we now produce the following plan instead: Limit (cost=13257.48..13257.53 rows=20 width=805) (actual time=1.567..1.579 rows=20 loops=1) Buffers: shared hit=287 -> Sort (cost=13257.48..13280.93 rows=9379 width=805) (actual time=1.567..1.572 rows=20 loops=1) Sort Key: (CASE WHEN ((name)::text = 'a'::text) THEN 0 WHEN ((username)::text = 'a'::text) THEN 1 WHEN ((email)::text = 'a'::text) THEN 2 ELSE 3 END), name Sort Method: top-N heapsort Memory: 35kB Buffers: shared hit=287 -> Bitmap Heap Scan on users (cost=135.66..13007.91 rows=9379 width=805) (actual time=0.194..1.107 rows=277 loops=1) Recheck Cond: ((lower((name)::text) = 'a'::text) OR (lower((username)::text) = 'a'::text) OR ((email)::text = 'a'::text)) Heap Blocks: exact=277 Buffers: shared hit=287 -> BitmapOr (cost=135.66..135.66 rows=9379 width=0) (actual time=0.152..0.152 rows=0 loops=1) Buffers: shared hit=10 -> Bitmap Index Scan on yorick_test_users (cost=0.00..124.75 rows=9377 width=0) (actual time=0.101..0.101 rows=277 loops=1) Index Cond: (lower((name)::text) = 'a'::text) Buffers: shared hit=4 -> Bitmap Index Scan on index_on_users_lower_username (cost=0.00..1.94 rows=1 width=0) (actual time=0.035..0.035 rows=1 loops=1) Index Cond: (lower((username)::text) = 'a'::text) Buffers: shared hit=3 -> Bitmap Index Scan on users_email_key (cost=0.00..1.94 rows=1 width=0) (actual time=0.014..0.014 rows=0 loops=1) Index Cond: ((email)::text = 'a'::text) Buffers: shared hit=3 Planning time: 0.303 ms Execution time: 1.687 ms Here we can see the new query is 25 times faster compared to the old query.
-
由 Oswaldo Ferreira 提交于
-
由 Bob Van Landuyt 提交于
-
- 22 2月, 2018 2 次提交
-
-
由 Dylan Griffith 提交于
-
由 Riccardo Padovani 提交于
-
- 21 2月, 2018 4 次提交
-
-
由 Tomasz Maczukin 提交于
-
由 Ken 提交于
26039 - add merge request id 26039 change due to lingust source file updates
-
由 Oswaldo Ferreira 提交于
-
由 Andreas Brandl 提交于
-
- 20 2月, 2018 9 次提交
-
-
由 Andreas Brandl 提交于
-
由 Andreas Brandl 提交于
-
由 Andreas Brandl 提交于
Immediately using #from here requires a lot of changes in other finders (e.g. IssuableFinder, TodosFinder). In all places where we use #merge, this goes completely the wrong way when passed in a relation that was built with `#from(...)`: The original query's FROM part gets completely replaced. This avoids changing all other places and focuses on improving SnippetFinder with the downside of two (small) codepaths to do the same thing.
-
由 Andreas Brandl 提交于
-
由 Andreas Brandl 提交于
-
由 Andreas Brandl 提交于
-
由 Andreas Brandl 提交于
-
由 Andreas Brandl 提交于
-
由 Dylan Griffith 提交于
This does not seem to serve any clear purpose and causes other issues (see https://gitlab.com/gitlab-org/gitlab-ce/issues/43196#note_59275652)
-
- 18 2月, 2018 1 次提交
-
-
由 Stan Hu 提交于
With Geo, attempting to view an endpoint with a user could result in an Error 500 since Devise attempts to update the last sign-in IP and other details. Closes gitlab-org/gitlab-ee#4972
-
- 17 2月, 2018 3 次提交
-
-
由 Douwe Maan 提交于
-
由 Stan Hu 提交于
This reverts merge request !16578
-
由 Micaël Bergeron 提交于
When a merge request is merged, it creates a commit with the description of the MR, which may contain references and issue closing references. As this will be handled in the PostMergeService anyways, let's ignore merge commit generated from a MR.
-
- 15 2月, 2018 6 次提交
-
-
由 Rubén Dávila 提交于
Revert "Merge branch 'rd-43185-revert-sanitize-extra-blank-spaces-used-when-uploading-a-ssh-key' into 'master'" This reverts commit e607fd79.
-
由 Francisco Javier López 提交于
-
由 Stan Hu 提交于
-
由 Stan Hu 提交于
-
由 Stan Hu 提交于
-
由 Stan Hu 提交于
We removed the exception handling for Rugged errors in !16770, which revealed that the licensee gem attempts to retrieve a license file via Rugged in `refs/heads/master` by default. If that branch did not exist, a Rugged::ReferenceError would be thrown. There were two issues: 1. Not every project uses `master` as the default branch. This change uses the head commit to identify the license. 2. Removing the exception handling caused repositories to fail loading. We can safely catch and ignore any Rugged error because this means we weren't able to load a license file. Closes #43268
-
- 14 2月, 2018 1 次提交
-
-
由 Sean McGivern 提交于
Before, this would: 1. Not use the correct reference for non-JIRA external trackers. 2. Append 'Closes ' if an external tracker was enabled, but no issue matched the branch name.
-