mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
cache connection when quoting
[#3642 state:committed] Signed-off-by: Marius Nuennerich <marius@nuenneri.ch> Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
This commit is contained in:
parent
6b4e0cc526
commit
e1a340a91d
1 changed files with 6 additions and 5 deletions
|
@ -1362,7 +1362,8 @@ module ActiveRecord #:nodoc:
|
|||
def replace_bind_variables(statement, values) #:nodoc:
|
||||
raise_if_bind_arity_mismatch(statement, statement.count('?'), values.size)
|
||||
bound = values.dup
|
||||
statement.gsub('?') { quote_bound_value(bound.shift) }
|
||||
c = connection
|
||||
statement.gsub('?') { quote_bound_value(bound.shift, c) }
|
||||
end
|
||||
|
||||
def replace_named_bind_variables(statement, bind_vars) #:nodoc:
|
||||
|
@ -1394,15 +1395,15 @@ module ActiveRecord #:nodoc:
|
|||
expanded
|
||||
end
|
||||
|
||||
def quote_bound_value(value) #:nodoc:
|
||||
def quote_bound_value(value, c = connection) #:nodoc:
|
||||
if value.respond_to?(:map) && !value.acts_like?(:string)
|
||||
if value.respond_to?(:empty?) && value.empty?
|
||||
connection.quote(nil)
|
||||
c.quote(nil)
|
||||
else
|
||||
value.map { |v| connection.quote(v) }.join(',')
|
||||
value.map { |v| c.quote(v) }.join(',')
|
||||
end
|
||||
else
|
||||
connection.quote(value)
|
||||
c.quote(value)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue