aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2015-12-29 23:29:42 -0200
committerRafael França <rafaelmfranca@gmail.com>2015-12-29 23:29:42 -0200
commitd3ec85402a50823ddacc2699699bc4b5f17e602e (patch)
treea68397ba41dcaccd5c8c1530d704727c7adcc768 /activerecord/lib
parentcc5ae3e6df90056d0559aeb34e5dde7b505b9aa6 (diff)
parent228ed57de8679892199b9fe7a1d9d704e5e5fac7 (diff)
downloadrails-d3ec85402a50823ddacc2699699bc4b5f17e602e.tar.gz
rails-d3ec85402a50823ddacc2699699bc4b5f17e602e.tar.bz2
rails-d3ec85402a50823ddacc2699699bc4b5f17e602e.zip
Merge pull request #22547 from kamipo/fix_create_table_info_cache
Correctly cache create_table_info
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb8
1 files changed, 6 insertions, 2 deletions
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 37e4eb24a8..863d8d3b8f 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
@@ -623,6 +623,7 @@ module ActiveRecord
# it can be helpful to provide these in a migration's +change+ method so it can be reverted.
# In that case, +options+ and the block will be used by create_table.
def drop_table(table_name, options = {})
+ create_table_info_cache.delete(table_name) if create_table_info_cache.key?(table_name)
execute "DROP#{' TEMPORARY' if options[:temporary]} TABLE#{' IF EXISTS' if options[:if_exists]} #{quote_table_name(table_name)}#{' CASCADE' if options[:force] == :cascade}"
end
@@ -1018,9 +1019,12 @@ module ActiveRecord
end
end
+ def create_table_info_cache # :nodoc:
+ @create_table_info_cache ||= {}
+ end
+
def create_table_info(table_name) # :nodoc:
- @create_table_info_cache = {}
- @create_table_info_cache[table_name] ||= select_one("SHOW CREATE TABLE #{quote_table_name(table_name)}")["Create Table"]
+ create_table_info_cache[table_name] ||= select_one("SHOW CREATE TABLE #{quote_table_name(table_name)}")["Create Table"]
end
def create_table_definition(name, temporary = false, options = nil, as = nil) # :nodoc: