From c1239e6509d27f88db2fc59189fd9a95333283e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 11 Jan 2010 15:14:52 +0100 Subject: Send the connection in AR notifications to avoid checking out new connections in threads just for logging purposes. --- .../lib/active_record/connection_adapters/abstract_adapter.rb | 6 ++++-- activerecord/lib/active_record/railtie.rb | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb index 5eedf448a4..1ad54e7584 100755 --- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb @@ -193,15 +193,17 @@ module ActiveRecord def log_info(sql, name, ms) if @logger && @logger.debug? - name = '%s (%.1fms)' % [name || 'SQL', ms] + name = '%s (%.1fms)' % [name, ms] @logger.debug(format_log_entry(name, sql.squeeze(' '))) end end protected def log(sql, name) + name ||= "SQL" result = nil - ActiveSupport::Notifications.instrument("active_record.sql", :sql => sql, :name => name) do + ActiveSupport::Notifications.instrument("active_record.sql", + :sql => sql, :name => name, :connection => self) do @runtime += Benchmark.ms { result = yield } end result diff --git a/activerecord/lib/active_record/railtie.rb b/activerecord/lib/active_record/railtie.rb index 55008271b7..a07f33503d 100644 --- a/activerecord/lib/active_record/railtie.rb +++ b/activerecord/lib/active_record/railtie.rb @@ -63,7 +63,7 @@ module ActiveRecord require 'active_support/notifications' ActiveSupport::Notifications.subscribe("active_record.sql") do |name, before, after, instrumenter_id, payload| - ActiveRecord::Base.connection.log_info(payload[:sql], payload[:name], (after - before) * 1000) + payload[:connection].log_info(payload[:sql], payload[:name], (after - before) * 1000) end end -- cgit v1.2.3