diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2011-04-13 09:42:31 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2011-04-13 09:42:51 -0700 |
commit | eebb19c954d64760c232cda10263200f32fcf036 (patch) | |
tree | aa9d760d7680c75fd930c6032a50090c630d68d2 /activerecord/lib | |
parent | 48fb6b338061c80deda92fd935992cee86a3b368 (diff) | |
download | rails-eebb19c954d64760c232cda10263200f32fcf036.tar.gz rails-eebb19c954d64760c232cda10263200f32fcf036.tar.bz2 rails-eebb19c954d64760c232cda10263200f32fcf036.zip |
use index based substitution for bind parameters
Diffstat (limited to 'activerecord/lib')
3 files changed, 4 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 b0e6136e12..d24cce0a3c 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb @@ -105,7 +105,7 @@ module ActiveRecord # Returns a bind substitution value given a +column+ and list of current # +binds+ - def substitute_for(column, binds) + def substitute_at(column, index) Arel.sql '?' end diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index 1c2cc7d5fa..05f0e5ebe1 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -511,8 +511,8 @@ module ActiveRecord end end - def substitute_for(column, current_values) - Arel.sql("$#{current_values.length + 1}") + def substitute_at(column, index) + Arel.sql("$#{index + 1}") end def exec_query(sql, name = 'SQL', binds = []) diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb index 673e47942b..aae257a0e7 100644 --- a/activerecord/lib/active_record/relation/finder_methods.rb +++ b/activerecord/lib/active_record/relation/finder_methods.rb @@ -320,7 +320,7 @@ module ActiveRecord column = columns_hash[primary_key] - substitute = connection.substitute_for(column, @bind_values) + substitute = connection.substitute_at(column, @bind_values.length) relation = where(table[primary_key].eq(substitute)) relation.bind_values = [[column, id]] record = relation.first |