aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation.rb
diff options
context:
space:
mode:
authorMikel Lindsaar <raasdnil@gmail.com>2010-06-08 00:10:11 -0400
committerMikel Lindsaar <raasdnil@gmail.com>2010-06-08 00:10:11 -0400
commite404490f9bae102f8c7126917d59568e6d1fef79 (patch)
tree34a4fd7517026ab23498e7d2301f27ebd75cdee2 /activerecord/lib/active_record/relation.rb
parent80a044edb663e6bc619b0755e30f9db10e37e9e8 (diff)
parent8d576b51a12fdb19e3993f3678ec64b2ea60fada (diff)
downloadrails-e404490f9bae102f8c7126917d59568e6d1fef79.tar.gz
rails-e404490f9bae102f8c7126917d59568e6d1fef79.tar.bz2
rails-e404490f9bae102f8c7126917d59568e6d1fef79.zip
Merge branch 'master' of git://github.com/rails/rails
Diffstat (limited to 'activerecord/lib/active_record/relation.rb')
-rw-r--r--activerecord/lib/active_record/relation.rb7
1 files changed, 5 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb
index 4e62187449..99c914d7fc 100644
--- a/activerecord/lib/active_record/relation.rb
+++ b/activerecord/lib/active_record/relation.rb
@@ -356,13 +356,16 @@ module ActiveRecord
end
def references_eager_loaded_tables?
- joined_tables = (tables_in_string(arel.joins(arel)) + [table.name, table.table_alias]).compact.uniq
+ # always convert table names to downcase as in Oracle quoted table names are in uppercase
+ joined_tables = (tables_in_string(arel.joins(arel)) + [table.name, table.table_alias]).compact.map(&:downcase).uniq
(tables_in_string(to_sql) - joined_tables).any?
end
def tables_in_string(string)
return [] if string.blank?
- string.scan(/([a-zA-Z_][\.\w]+).?\./).flatten.uniq
+ # always convert table names to downcase as in Oracle quoted table names are in uppercase
+ # ignore raw_sql_ that is used by Oracle adapter as alias for limit/offset subqueries
+ string.scan(/([a-zA-Z_][\.\w]+).?\./).flatten.map(&:downcase).uniq - ['raw_sql_']
end
end