Commit Graph

144 Commits

Author SHA1 Message Date
GitLab Bot a53d2c37c4 Add latest changes from gitlab-org/gitlab@master 2020-02-21 09:09:01 +00:00
GitLab Bot 33795139ea Add latest changes from gitlab-org/gitlab@master 2020-02-19 18:09:10 +00:00
GitLab Bot eb1f5a3e08 Add latest changes from gitlab-org/gitlab@master 2020-02-17 18:09:00 +00:00
GitLab Bot a89cb5cbdd Add latest changes from gitlab-org/gitlab@master 2020-02-06 21:08:48 +00:00
GitLab Bot 76623c12c1 Add latest changes from gitlab-org/gitlab@master 2020-02-05 21:09:02 +00:00
GitLab Bot c27acb1d37 Add latest changes from gitlab-org/gitlab@master 2020-01-31 15:08:42 +00:00
GitLab Bot 536aa3a1f4 Add latest changes from gitlab-org/gitlab@master 2020-01-30 15:09:15 +00:00
GitLab Bot 6b9d3a4e83 Add latest changes from gitlab-org/gitlab@master 2020-01-29 18:08:47 +00:00
GitLab Bot 23288f62da Add latest changes from gitlab-org/gitlab@master 2020-01-29 15:08:59 +00:00
GitLab Bot 6315ed9630 Add latest changes from gitlab-org/gitlab@master 2020-01-28 18:08:35 +00:00
GitLab Bot d65442b1d9 Add latest changes from gitlab-org/gitlab@master 2020-01-23 00:08:53 +00:00
GitLab Bot 0820b29dca Add latest changes from gitlab-org/gitlab@master 2020-01-15 12:08:34 +00:00
GitLab Bot a7df1d8717 Add latest changes from gitlab-org/gitlab@master 2020-01-08 15:08:01 +00:00
GitLab Bot 015663b70f Add latest changes from gitlab-org/gitlab@master 2020-01-06 21:07:43 +00:00
GitLab Bot 898e2cc1df Add latest changes from gitlab-org/gitlab@master 2019-12-20 09:24:38 +00:00
GitLab Bot badb9c1dea Add latest changes from gitlab-org/gitlab@master 2019-12-17 12:08:11 +00:00
GitLab Bot 9763c08170 Add latest changes from gitlab-org/gitlab@master 2019-12-17 03:07:45 +00:00
GitLab Bot 784fae4b9d Add latest changes from gitlab-org/gitlab@master 2019-12-12 12:07:33 +00:00
GitLab Bot bffcdf9bca Add latest changes from gitlab-org/gitlab@master 2019-12-02 12:06:45 +00:00
GitLab Bot 8644755363 Add latest changes from gitlab-org/gitlab@master 2019-12-01 06:06:11 +00:00
GitLab Bot 4c464055fb Add latest changes from gitlab-org/gitlab@master 2019-11-05 15:06:17 +00:00
Peter Leitzen 50c647af51 Add rake task `db:obsolete_ignored_columns`
Show a list of obsolete `ignored_columns`
2019-09-11 16:23:42 +00:00
Ash McKenzie 124bad7bd8
Use stub_rails_env for Rails.env stubbing
RailsHelpers.stub_rails_env takes care of
stubbing Rails.env
2019-09-05 12:54:03 +10:00
Reuben Pereira f855f9b815 Add helper to exactly undo cleanup_concurrent_column_rename
- Also add helper to undo rename_column_concurrently.
2019-08-25 20:14:52 +00:00
Reuben Pereira 599cc49973 Drop existing trigger before creating new one
- When renaming a column concurrently, drop any existing trigger before
attempting to create a new one.

When running migration specs multiple times (as it happens during
local development), the down method of previous migrations are called.
If any of the called methods contains a call to
rename_column_concurrently, a trigger will be created and not removed.
So, the next time a migration spec is run, if the same down method is
executed again, it will cause an error when attempting to create the
trigger (since it already exists). Dropping the trigger if it already
exists will prevent this problem.
2019-08-24 04:20:29 +00:00
Andreas Brandl 988dc80585
Further remove code branches by database type
We dropped MySQL support and a lot of mysql specific code has been
removed in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29608.

This comes in from the other direction and removes any `if postgresql?`
branches.
2019-07-29 12:47:06 +02:00
Stan Hu ef3e6785a2 Merge branch 'frozen_string_spec_lib' into 'master'
Add frozen_string_literal to spec/lib (part 1)

See merge request gitlab-org/gitlab-ce!31130
2019-07-26 20:37:26 +00:00
Thong Kuah f540ffcef6 Add frozen_string_literal to spec/lib (part 1)
Using the sed script from
https://gitlab.com/gitlab-org/gitlab-ce/issues/59758
2019-07-26 13:25:07 +12:00
Heinrich Lee Yu 1ce5bcacdb Remove code related to object hierarchy in MySQL
These are not required because MySQL is not
supported anymore
2019-07-25 15:35:06 +08:00
Andreas Brandl 259493bb4c Enable tablesample count strategy by default
https://gitlab.com/gitlab-org/gitlab-ce/issues/58792
2019-07-24 17:00:34 +00:00
Nick Thomas 4aa76dddec
Remove dead MySQL code
None of this code can be reached any more, so it can all be removed
2019-07-23 16:53:03 +01:00
Alex Kalderimis eda789c3c2 Improves add_timestamps_with_timezone helper
This improves the `add_timestamps_with_timezone` helper by allowing the
column names to be configured. This has the advantage that unnecessary
columns can be avoided, saving space.

A helper for removing the columns is also provided, to be used in the
`down` method of migrations.
2019-07-18 15:47:01 +00:00
Jason Goodman 96b116d099 Support jsonb Default Value in add_column_with_default Migration Helper 2019-06-28 04:48:57 +00:00
Stan Hu 6c0bc9abdd Remove import columns from projects table
In https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21497, we
migrated all project import data into a separate table,
`project_import_data`.  In addition, we also added:

```
ignore_column :import_status, :import_jid, :import_error
```

In https://gitlab.com/gitlab-com/gl-infra/production/issues/908, we
observed some of these `import_error` columns consumed megabytes of
error backtraces and caused slow loading of projects whenever a `SELECT
* from projects` query loaded the row into memory.

Since we have long migrated away from these columns, we can now drop
these columns entirely.
2019-06-19 13:30:41 -07:00
Yorick Peterse 0f777a8d49
Allow custom names for concurrent foreign keys
This is necessary for backporting the EE schema to ensure backported
foreign keys use the same key names.
2019-06-17 17:06:20 +02:00
Thong Kuah 4ec16912b8 Autocorrect with RSpec/ExampleWording cop
- rewords examples starting with 'should'
- rewords examples starting with 'it'

Note: I had to manually fixup "onlies" to "only"
2019-04-05 08:43:27 +00:00
Stan Hu b35a6880b9 Fix counting of groups in admin dashboard
1. Ignore tables that use STI in reltuples count strategy.

   Models that use Rails' single-type inheritance, such as `Group` and
   `CiService`, need an additional WHERE clause to count the total
   properly, which isn't supported by the reltuples strategy.  For now,
   we just omit these from the statistics sampling and rely on the other
   strategies to get this data.

2. Fix tablesample count strategy not counting groups properly.

   Models such as `Group` needs a WHERE clause to distinguish it from
   namespaces. We now add in the WHERE clause if STI is in use.

Closes https://gitlab.com/gitlab-org/gitlab-ee/issues/7435
2019-03-11 23:50:47 -07:00
Takuya Noguchi a565f3d88d Fix misspellings in app/spec executable lines
Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com>
2019-02-27 22:41:34 +09:00
Jasper Maes 44fef4fe4c Remove rails 4 support in CI, Gemfiles, bin/ and config/ 2018-12-14 19:36:22 +01:00
Jan Provaznik 3720d02b8b Use approximate counts for big tables 2018-12-06 16:07:14 +00:00
Andreas Brandl 474fd9138c
Move strategies in their own files
This improves readability quite a bit.
2018-12-03 21:26:53 +01:00
Andreas Brandl 332fe82e45
Limit some specs to PostgreSQL only. 2018-12-03 21:26:52 +01:00
Andreas Brandl 9bb7c690c4
Fix rubocop offenses. 2018-12-03 21:26:51 +01:00
Andreas Brandl 3266642739
Add feature flag for tablesample counting. 2018-12-03 21:26:51 +01:00
Andreas Brandl 3a7d9b4b02
Implement TablesampleCountStrategy.
A tablesample count executes in two phases:
* Estimate table sizes based on reltuples.
* Based on the estimate:
  * If the table is considered 'small', execute an exact relation count.
  * Otherwise, count on a sample of the table using TABLESAMPLE.

The size of the sample is chosen in a way that we always roughly scan
the same amount of rows (see TABLESAMPLE_ROW_TARGET).
2018-12-03 21:26:50 +01:00
Andreas Brandl dce4a92bb0
Finish refactoring specs.
The goal is to reflect separation of concern also in specs.
2018-12-03 21:26:50 +01:00
Andreas Brandl e5e4c6b7ed
Move things to their right scope in specs. 2018-12-03 21:26:50 +01:00
Andreas Brandl 72347448db
More specs for fallback testing. 2018-12-03 21:26:49 +01:00
Andreas Brandl 01c7cb90da
Refactor specs to separate concerns. 2018-12-03 21:26:49 +01:00
Andreas Brandl c5fb468255
Flexible approximate counts with fallback strategies. 2018-12-03 21:26:48 +01:00