diff options
author | Dinah Shi <dinahshi28@gmail.com> | 2018-01-23 22:25:22 -0500 |
---|---|---|
committer | Dinah Shi <dinahshi28@gmail.com> | 2018-01-23 22:25:22 -0500 |
commit | 1d8266fc689d6ec4f9df2b4a64214c5dcc9b0b7d (patch) | |
tree | 1776abde34dfe075c5ab30743bdbf73009ee622f /activerecord | |
parent | dbff1cee55a13ec7b0f135618555c3714bfd597b (diff) | |
download | rails-1d8266fc689d6ec4f9df2b4a64214c5dcc9b0b7d.tar.gz rails-1d8266fc689d6ec4f9df2b4a64214c5dcc9b0b7d.tar.bz2 rails-1d8266fc689d6ec4f9df2b4a64214c5dcc9b0b7d.zip |
Use concat to join procs arrays in bulk_change_table
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb | 2 | ||||
-rw-r--r-- | activerecord/test/cases/migration_test.rb | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb index a8895f8606..5e7bd4c871 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb @@ -375,7 +375,7 @@ module ActiveRecord if respond_to?(method, true) sqls, procs = Array(send(method, table, *arguments)).partition { |v| v.is_a?(String) } sql_fragments << sqls - non_combinable_operations << procs if procs.present? + non_combinable_operations.concat(procs) else execute "ALTER TABLE #{quote_table_name(table_name)} #{sql_fragments.join(", ")}" unless sql_fragments.empty? non_combinable_operations.each(&:call) diff --git a/activerecord/test/cases/migration_test.rb b/activerecord/test/cases/migration_test.rb index a3ebc8070a..3a6b5b2a6f 100644 --- a/activerecord/test/cases/migration_test.rb +++ b/activerecord/test/cases/migration_test.rb @@ -866,7 +866,7 @@ if ActiveRecord::Base.connection.supports_bulk_alter? classname = ActiveRecord::Base.connection.class.name[/[^:]*$/] expected_query_count = { "Mysql2Adapter" => 3, # one query for columns, one query for primary key, one query to do the bulk change - "PostgreSQLAdapter" => 2, # one query for columns, one for bulk change + "PostgreSQLAdapter" => 3, # one query for columns, one for bulk change, one for comment }.fetch(classname) { raise "need an expected query count for #{classname}" } @@ -874,12 +874,13 @@ if ActiveRecord::Base.connection.supports_bulk_alter? assert_queries(expected_query_count, ignore_none: true) do with_bulk_change_table do |t| t.change :name, :string, default: "NONAME" - t.change :birthdate, :datetime + t.change :birthdate, :datetime, comment: "This is a comment" end end assert_equal "NONAME", column(:name).default assert_equal :datetime, column(:birthdate).type + assert_equal "This is a comment", column(:birthdate).comment end private |