diff options
author | Jeremy Daer <jeremydaer@gmail.com> | 2015-09-19 15:50:33 -0700 |
---|---|---|
committer | Jeremy Daer <jeremydaer@gmail.com> | 2015-09-19 15:50:33 -0700 |
commit | fc7311d4f1f75a1a002e43e09cbed16d9d6e7caf (patch) | |
tree | 0018f86ff8911edd8418d032a1b5587ea9611ad8 | |
parent | b8dee6c3ce14d7a49813a87ab115309f8c0d5daa (diff) | |
parent | b8bedfa2f26c1697dd48dca6201a591c42ccfba0 (diff) | |
download | rails-fc7311d4f1f75a1a002e43e09cbed16d9d6e7caf.tar.gz rails-fc7311d4f1f75a1a002e43e09cbed16d9d6e7caf.tar.bz2 rails-fc7311d4f1f75a1a002e43e09cbed16d9d6e7caf.zip |
Merge pull request #21664 from kamipo/reduce_call_create_table_info
Reduce the calling `create_table_info` query
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 9 |
1 files changed, 7 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 bc350a0ceb..74f03f62d0 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -686,7 +686,7 @@ module ActiveRecord AND fk.table_name = '#{table_name}' SQL - create_table_info = select_one("SHOW CREATE TABLE #{quote_table_name(table_name)}")["Create Table"] + create_table_info = create_table_info(table_name) fk_info.map do |row| options = { @@ -703,7 +703,7 @@ module ActiveRecord end def table_options(table_name) - create_table_info = select_one("SHOW CREATE TABLE #{quote_table_name(table_name)}")["Create Table"] + create_table_info = create_table_info(table_name) # strip create_definitions and partition_options raw_table_options = create_table_info.sub(/\A.*\n\) /m, '').sub(/\n\/\*!.*\*\/\n\z/m, '').strip @@ -1023,6 +1023,11 @@ module ActiveRecord end 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"] + end + def create_table_definition(name, temporary = false, options = nil, as = nil) # :nodoc: TableDefinition.new(native_database_types, name, temporary, options, as) end |