aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_adapter.rb18
1 files changed, 16 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
index c07ba2ac74..4799b693c5 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
@@ -36,9 +36,12 @@ module ActiveRecord
define_callbacks :checkout, :checkin
+ @@row_even = true
+
def initialize(connection, logger = nil) #:nodoc:
@active = nil
@connection, @logger = connection, logger
+ @runtime = 0
@query_cache_enabled = false
@query_cache = {}
end
@@ -89,6 +92,11 @@ module ActiveRecord
false
end
+ def reset_runtime #:nodoc:
+ rt, @runtime = @runtime, 0
+ rt
+ end
+
# QUOTING ==================================================
# Override to return the quoted table name. Defaults to column quoting.
@@ -191,10 +199,16 @@ module ActiveRecord
def log(sql, name)
name ||= "SQL"
- ActiveSupport::Notifications.instrument("sql.active_record",
- :sql => sql, :name => name, :connection_id => object_id) do
+ instrumenter = ActiveSupport::Notifications.instrumenter
+ info = {}
+
+ result = instrumenter.instrument("sql.active_record",
+ {:sql => sql, :name => name, :connection_id => object_id}, info) do
yield
end
+ @runtime += info[:elapsed]
+
+ result
rescue Exception => e
message = "#{e.class.name}: #{e.message}: #{sql}"
@logger.debug message if @logger