aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/mysql/schema_statements.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-12-03 07:08:30 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-12-03 07:08:30 +0900
commit33a3f7123bc4cc49b99b01a40bbfd463b2e73f76 (patch)
tree254c6b0f4b0a5e17831763c9b77176e1c7753ceb /activerecord/lib/active_record/connection_adapters/mysql/schema_statements.rb
parent3040446cece8e7a6d9e29219e636e13f180a1e03 (diff)
downloadrails-33a3f7123bc4cc49b99b01a40bbfd463b2e73f76.tar.gz
rails-33a3f7123bc4cc49b99b01a40bbfd463b2e73f76.tar.bz2
rails-33a3f7123bc4cc49b99b01a40bbfd463b2e73f76.zip
Extract duplicated index column options normalization as `options_for_index_columns`
And placed `add_options_for_index_columns` in `schema_statements.rb` consistently to ease to find related code.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/mysql/schema_statements.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/mysql/schema_statements.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/mysql/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/mysql/schema_statements.rb
index d5b2c18ee6..ce50590651 100644
--- a/activerecord/lib/active_record/connection_adapters/mysql/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/mysql/schema_statements.rb
@@ -106,6 +106,18 @@ module ActiveRecord
super unless specifier == "RESTRICT"
end
+ def add_index_length(quoted_columns, **options)
+ lengths = options_for_index_columns(options[:length])
+ quoted_columns.each do |name, column|
+ column << "(#{lengths[name]})" if lengths[name].present?
+ end
+ end
+
+ def add_options_for_index_columns(quoted_columns, **options)
+ quoted_columns = add_index_length(quoted_columns, options)
+ super
+ end
+
def data_source_sql(name = nil, type: nil)
scope = quoted_scope(name, type: type)