aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2015-11-12 16:24:09 +0100
committerYves Senn <yves.senn@gmail.com>2015-11-12 16:24:09 +0100
commit19398ab98af04eedb2574890ed0d8ecdf82ebb4c (patch)
tree8e2c0d2052136b82c7d8664dc146c9791fa7b4d8 /activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
parent53d04697d5c9450ecb5b7f37bdf0d5f12dd5ded5 (diff)
parent7429633b824cf8aaeea52d11876e7bd2b8d2f256 (diff)
downloadrails-19398ab98af04eedb2574890ed0d8ecdf82ebb4c.tar.gz
rails-19398ab98af04eedb2574890ed0d8ecdf82ebb4c.tar.bz2
rails-19398ab98af04eedb2574890ed0d8ecdf82ebb4c.zip
Merge pull request #21601 from yui-knk/fix/ar_tables_without_view2
All `AR::ConnectionAdapters#tables` return only tables(exclude views)
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb28
1 files changed, 26 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 3e3bbc267b..b6e17ad4ef 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
@@ -497,18 +497,43 @@ module ActiveRecord
end
def tables(name = nil) # :nodoc:
+ ActiveSupport::Deprecation.warn(<<-MSG.squish)
+ #tables currently returns both tables and views.
+ This behavior is deprecated and will be changed with Rails 5.1 to only return tables.
+ Use #data_sources instead.
+ MSG
+
+ if name
+ ActiveSupport::Deprecation.warn(<<-MSG.squish)
+ Passing arguments to #tables is deprecated without replacement.
+ MSG
+ end
+
+ data_sources
+ end
+
+ def data_sources
sql = "SELECT table_name FROM information_schema.tables "
sql << "WHERE table_schema = #{quote(@config[:database])}"
select_values(sql, 'SCHEMA')
end
- alias data_sources tables
def truncate(table_name, name = nil)
execute "TRUNCATE TABLE #{quote_table_name(table_name)}", name
end
def table_exists?(table_name)
+ ActiveSupport::Deprecation.warn(<<-MSG.squish)
+ #table_exists? currently checks both tables and views.
+ This behavior is deprecated and will be changed with Rails 5.1 to only check tables.
+ Use #data_source_exists? instead.
+ MSG
+
+ data_source_exists?(table_name)
+ end
+
+ def data_source_exists?(table_name)
return false unless table_name.present?
schema, name = table_name.to_s.split('.', 2)
@@ -519,7 +544,6 @@ module ActiveRecord
select_values(sql, 'SCHEMA').any?
end
- alias data_source_exists? table_exists?
def views # :nodoc:
select_values("SHOW FULL TABLES WHERE table_type = 'VIEW'", 'SCHEMA')