Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
3387df16
Commit
3387df16
authored
Sep 27, 2017
by
Greg Stark
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add (partial) index on Labels.template
parent
5b56cd3b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
51 additions
and
0 deletions
+51
-0
changelogs/unreleased/add-labels-template-index.yml
changelogs/unreleased/add-labels-template-index.yml
+5
-0
db/migrate/20170927122209_add_partial_index_for_labels_template.rb
...e/20170927122209_add_partial_index_for_labels_template.rb
+45
-0
db/schema.rb
db/schema.rb
+1
-0
No files found.
changelogs/unreleased/add-labels-template-index.yml
0 → 100644
View file @
3387df16
---
title
:
Add (partial) index on Labels.template
merge_request
:
author
:
type
:
other
db/migrate/20170927122209_add_partial_index_for_labels_template.rb
0 → 100644
View file @
3387df16
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
class
AddPartialIndexForLabelsTemplate
<
ActiveRecord
::
Migration
include
Gitlab
::
Database
::
MigrationHelpers
# Set this constant to true if this migration requires downtime.
DOWNTIME
=
false
# When a migration requires downtime you **must** uncomment the following
# constant and define a short and easy to understand explanation as to why the
# migration requires downtime.
# DOWNTIME_REASON = ''
# When using the methods "add_concurrent_index", "remove_concurrent_index" or
# "add_column_with_default" you must disable the use of transactions
# as these methods can not run in an existing transaction.
# When using "add_concurrent_index" or "remove_concurrent_index" methods make sure
# that either of them is the _only_ method called in the migration,
# any other changes should go in a separate migration.
# This ensures that upon failure _only_ the index creation or removing fails
# and can be retried or reverted easily.
#
# To disable transactions uncomment the following line and remove these
# comments:
disable_ddl_transaction!
# Note this is a partial index in Postgres but MySQL will ignore the
# partial index clause. By making it an index on "template" this
# means the index will still accomplish the same goal of optimizing
# a query with "where template = true" on MySQL -- it'll just take
# more space. In this case the number of records with template=true
# is expected to be very small (small enough to display on a single
# web page) so it's ok to filter or sort them without the index
# anyways.
def
up
add_concurrent_index
"labels"
,
[
"template"
],
where:
"template"
end
def
down
remove_concurrent_index
"labels"
,
[
"template"
],
where:
"template"
end
end
db/schema.rb
View file @
3387df16
...
...
@@ -730,6 +730,7 @@ ActiveRecord::Schema.define(version: 20170928100231) do
add_index
"labels"
,
[
"group_id"
,
"project_id"
,
"title"
],
name:
"index_labels_on_group_id_and_project_id_and_title"
,
unique:
true
,
using: :btree
add_index
"labels"
,
[
"project_id"
],
name:
"index_labels_on_project_id"
,
using: :btree
add_index
"labels"
,
[
"template"
],
name:
"index_labels_on_template"
,
where:
"template"
,
using: :btree
add_index
"labels"
,
[
"title"
],
name:
"index_labels_on_title"
,
using: :btree
add_index
"labels"
,
[
"type"
,
"project_id"
],
name:
"index_labels_on_type_and_project_id"
,
using: :btree
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment