diff options
author | Grant Neufeld <grant@grantneufeld.ca> | 2011-06-18 14:38:38 -0600 |
---|---|---|
committer | Grant Neufeld <grant@grantneufeld.ca> | 2011-06-18 14:38:38 -0600 |
commit | 3cc83a8f24ba61b648a2728efc113388cf1ec243 (patch) | |
tree | 6f79c8bf91d8739b9431442cdcaeae2962c4376d | |
parent | 2fbb7504e2c2b0a95398d1ef0c97ea4a403d831d (diff) | |
download | rails-3cc83a8f24ba61b648a2728efc113388cf1ec243.tar.gz rails-3cc83a8f24ba61b648a2728efc113388cf1ec243.tar.bz2 rails-3cc83a8f24ba61b648a2728efc113388cf1ec243.zip |
Changed the default value for the options argument on ActiveRecord::ConnectionAdapters::Table#column_exists? from nil to an empty Hash {}.
That method calls through to ActiveRecord::ConnectionAdapters::SchemaStatements##column_exists? expects options to be a Hash.
When options was nil, an error would occur in cases where the column did exist because the called method attempted to perform a key lookup on options.
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb | 2 | ||||
-rw-r--r-- | activerecord/test/cases/migration_test.rb | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb index a9e3c83eb0..82f564e41d 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb @@ -328,7 +328,7 @@ module ActiveRecord end # Checks to see if a column exists. See SchemaStatements#column_exists? - def column_exists?(column_name, type = nil, options = nil) + def column_exists?(column_name, type = nil, options = {}) @base.column_exists?(@table_name, column_name, type, options) end diff --git a/activerecord/test/cases/migration_test.rb b/activerecord/test/cases/migration_test.rb index bf7565a0d0..93a1249e43 100644 --- a/activerecord/test/cases/migration_test.rb +++ b/activerecord/test/cases/migration_test.rb @@ -1071,6 +1071,18 @@ if ActiveRecord::Base.connection.supports_migrations? Person.connection.drop_table :testings rescue nil end + def test_column_exists_on_table_with_no_options_parameter_supplied + Person.connection.create_table :testings do |t| + t.string :foo + end + Person.connection.change_table :testings do |t| + assert t.column_exists?(:foo) + assert !(t.column_exists?(:bar)) + end + ensure + Person.connection.drop_table :testings rescue nil + end + def test_add_table assert !Reminder.table_exists? |