diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2014-01-13 16:33:31 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2014-01-13 16:33:31 -0800 |
commit | b8264ef0b43802dbd658d947e1c043254c900cf4 (patch) | |
tree | e3a0cbca759fcf34ca47c99874bb3ee164635573 /activerecord/lib | |
parent | 5f2dd14d1353d1638c5b8731c6ecf546045d898c (diff) | |
download | rails-b8264ef0b43802dbd658d947e1c043254c900cf4.tar.gz rails-b8264ef0b43802dbd658d947e1c043254c900cf4.tar.bz2 rails-b8264ef0b43802dbd658d947e1c043254c900cf4.zip |
replace bind values on calls to to_sql
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_adapter.rb | 4 | ||||
-rw-r--r-- | activerecord/lib/active_record/relation.rb | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb index 8aa1ce5c04..abf2cb3d3e 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb @@ -104,6 +104,10 @@ module ActiveRecord @prepared_statements = false end + def bind_substitution_visitor + @bind_sub_visitor ||= visitor.dup.extend(Arel::Visitors::BindVisitor) + end + def valid_type?(type) true end diff --git a/activerecord/lib/active_record/relation.rb b/activerecord/lib/active_record/relation.rb index c96fc6c2f2..661b6b17f0 100644 --- a/activerecord/lib/active_record/relation.rb +++ b/activerecord/lib/active_record/relation.rb @@ -518,15 +518,15 @@ module ActiveRecord @to_sql ||= begin relation = self connection = klass.connection - visitor = connection.visitor + visitor = connection.bind_substitution_visitor if eager_loading? find_with_associations { |rel| relation = rel } end - ast = relation.arel.ast - binds = relation.bind_values.dup - visitor.accept(ast) do + arel = relation.arel + binds = arel.bind_values + relation.bind_values + visitor.accept(arel.ast) do connection.quote(*binds.shift.reverse) end end |