aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorJeremy Daer <jeremydaer@gmail.com>2015-09-19 16:04:01 -0700
committerJeremy Daer <jeremydaer@gmail.com>2015-09-19 16:04:01 -0700
commitac2b312219faf67d08a4fb3fd622ecb4c9bc3623 (patch)
treeacf9712a41ff17e6c07eeb6df1f2f905294f02d2 /activerecord/lib/active_record
parent7286677050c1923020c71a77e9427d19391bc20f (diff)
parente4eb2436710ddca31eebfd5cad009d93ccd4bdfc (diff)
downloadrails-ac2b312219faf67d08a4fb3fd622ecb4c9bc3623.tar.gz
rails-ac2b312219faf67d08a4fb3fd622ecb4c9bc3623.tar.bz2
rails-ac2b312219faf67d08a4fb3fd622ecb4c9bc3623.zip
Merge pull request #21589 from kamipo/eliminate_duplicated_visit_table_definition
Eliminate the duplication code of `visit_TableDefinition`
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb8
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb14
2 files changed, 6 insertions, 16 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb
index 09b2b892af..4df8df2df7 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb
@@ -15,9 +15,9 @@ module ActiveRecord
end
delegate :quote_column_name, :quote_table_name, :quote_default_expression, :type_to_sql,
- :options_include_default?, to: :@conn
+ :options_include_default?, :supports_indexes_in_create?, to: :@conn
private :quote_column_name, :quote_table_name, :quote_default_expression, :type_to_sql,
- :options_include_default?
+ :options_include_default?, :supports_indexes_in_create?
private
@@ -45,6 +45,10 @@ module ActiveRecord
statements = o.columns.map { |c| accept c }
statements << accept(o.primary_keys) if o.primary_keys
+ if supports_indexes_in_create?
+ statements.concat(o.indexes.map { |column_name, options| index_in_create(o.name, column_name, options) })
+ end
+
create_sql << "(#{statements.join(', ')}) " if statements.present?
create_sql << "#{o.options}"
create_sql << " AS #{@conn.to_sql(o.as)}" if o.as
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
index 3c592dad84..f0004e398e 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
@@ -52,20 +52,6 @@ module ActiveRecord
"DROP FOREIGN KEY #{name}"
end
- def visit_TableDefinition(o)
- name = o.name
- create_sql = "CREATE#{' TEMPORARY' if o.temporary} TABLE #{quote_table_name(name)} "
-
- statements = o.columns.map { |c| accept c }
- statements << accept(o.primary_keys) if o.primary_keys
- statements.concat(o.indexes.map { |column_name, options| index_in_create(name, column_name, options) })
-
- create_sql << "(#{statements.join(', ')}) " if statements.present?
- create_sql << "#{o.options}"
- create_sql << " AS #{@conn.to_sql(o.as)}" if o.as
- create_sql
- end
-
def visit_AddColumnDefinition(o)
add_column_position!(super, column_options(o.column))
end