aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel/table.rb18
-rw-r--r--lib/arel/visitors/to_sql.rb9
-rw-r--r--test/test_select_manager.rb4
3 files changed, 17 insertions, 14 deletions
diff --git a/lib/arel/table.rb b/lib/arel/table.rb
index c2db388fd4..79c9b60945 100644
--- a/lib/arel/table.rb
+++ b/lib/arel/table.rb
@@ -94,8 +94,8 @@ module Arel
def columns
if $VERBOSE
warn <<-eowarn
-(#{caller.first}) Arel::Table#columns is deprecated and will be removed in
-Arel 2.2.0 with no replacement.
+(#{caller.first}) Arel::Table#columns is deprecated and will be removed in
+Arel 2.2.0 with no replacement. PEW PEW PEW!!!
eowarn
end
@columns ||=
@@ -124,16 +124,14 @@ Arel 2.2.0 with no replacement.
end
end
- def table_exists?
- @table_exists ||= tables.key?(@name) || engine.connection.table_exists?(name)
- end
-
- def tables
- self.class.table_cache(@engine)
- end
-
@@table_cache = nil
def self.table_cache engine # :nodoc:
+ if $VERBOSE
+ warn <<-eowarn
+(#{caller.first}) Arel::Table.table_cache is deprecated and will be removed in
+Arel 2.2.0 with no replacement. PEW PEW PEW!!!
+ eowarn
+ end
@@table_cache ||= Hash[engine.connection.tables.map { |x| [x,true] }]
end
end
diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb
index 8db90c376a..082196ef2b 100644
--- a/lib/arel/visitors/to_sql.rb
+++ b/lib/arel/visitors/to_sql.rb
@@ -70,11 +70,12 @@ module Arel
def table_exists? name
return true if @table_exists.key? name
- if @connection.table_exists?(name)
- @table_exists[name] = true
- else
- false
+
+ @connection.tables.each do |table|
+ @table_exists[table] = true
end
+
+ @table_exists.key? name
end
def column_for attr
diff --git a/test/test_select_manager.rb b/test/test_select_manager.rb
index db2b306916..826832c5ab 100644
--- a/test/test_select_manager.rb
+++ b/test/test_select_manager.rb
@@ -34,6 +34,10 @@ module Arel
@engine.connection.table_exists? name
end
+ def tables
+ @engine.connection.tables
+ end
+
def execute sql, name = nil, *args
@executed << sql
end