aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorSean Griffin <sean@seantheprogrammer.com>2015-10-20 14:39:53 -0600
committerSean Griffin <sean@seantheprogrammer.com>2015-10-20 14:39:53 -0600
commitd99db6b8b3e48ca209436facdac9899d3d99f641 (patch)
tree66df33f707b9823ff782958008eef3e479879f02 /activerecord/lib/active_record
parent0ceaa733aa327e2117c5e059f4cd00126449e8e8 (diff)
parent4c42c89b0482f8ccde625e4d4699cd14f5f20afc (diff)
downloadrails-d99db6b8b3e48ca209436facdac9899d3d99f641.tar.gz
rails-d99db6b8b3e48ca209436facdac9899d3d99f641.tar.bz2
rails-d99db6b8b3e48ca209436facdac9899d3d99f641.zip
Merge pull request #18856 from al2o3cr/issue_17897
Match table names exactly on MySQL
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb12
1 files changed, 10 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 926b9e6987..59137fb842 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
@@ -482,8 +482,16 @@ module ActiveRecord
show_variable 'collation_database'
end
- def tables(name = nil) # :nodoc:
- select_values("SHOW FULL TABLES", 'SCHEMA')
+ def tables(name = nil, database = nil, like = nil) #:nodoc:
+ database ||= current_database
+
+ sql = "SELECT table_name FROM information_schema.tables "
+ sql << "WHERE table_schema = #{quote(database)}"
+ sql << " AND table_name = #{quote(like)}" if like
+
+ execute_and_free(sql, 'SCHEMA') do |result|
+ result.collect(&:first)
+ end
end
alias data_sources tables