log method takes an option list of bind values

This commit is contained in:
Aaron Patterson
2011-02-09 15:15:37 -08:00
parent 37efb517cb
commit c560c8b2ba
4 changed files with 10 additions and 8 deletions

View File

@@ -209,11 +209,13 @@ module ActiveRecord
protected
def log(sql, name = "SQL")
@instrumenter.instrument("sql.active_record",
:sql => sql, :name => name, :connection_id => object_id) do
yield
end
def log(sql, name = "SQL", binds = [])
@instrumenter.instrument(
"sql.active_record",
:sql => sql,
:name => name,
:connection_id => object_id,
:binds => binds) { yield }
rescue Exception => e
message = "#{e.class.name}: #{e.message}: #{sql}"
@logger.debug message if @logger

View File

@@ -331,7 +331,7 @@ module ActiveRecord
end
def exec_query(sql, name = 'SQL', binds = [])
log(sql, name) do
log(sql, name, binds) do
result = nil
cache = {}

View File

@@ -532,7 +532,7 @@ module ActiveRecord
def exec_query(sql, name = 'SQL', binds = [])
return exec_no_cache(sql, name) if binds.empty?
log(sql, name) do
log(sql, name, binds) do
unless @statements.key? sql
nextkey = "a#{@statements.length + 1}"
@connection.prepare nextkey, sql

View File

@@ -148,7 +148,7 @@ module ActiveRecord
# DATABASE STATEMENTS ======================================
def exec_query(sql, name = nil, binds = [])
log(sql, name) do
log(sql, name, binds) do
# Don't cache statements without bind values
if binds.empty?