diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2017-12-03 07:08:30 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2017-12-03 07:08:30 +0900 |
commit | 33a3f7123bc4cc49b99b01a40bbfd463b2e73f76 (patch) | |
tree | 254c6b0f4b0a5e17831763c9b77176e1c7753ceb /activerecord/lib/active_record/connection_adapters/mysql/schema_statements.rb | |
parent | 3040446cece8e7a6d9e29219e636e13f180a1e03 (diff) | |
download | rails-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.rb | 12 |
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) |