diff options
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 12 |
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 |