diff options
author | Xavier Noria <fxn@hashref.com> | 2013-04-16 22:46:55 +0200 |
---|---|---|
committer | Xavier Noria <fxn@hashref.com> | 2013-04-16 22:46:55 +0200 |
commit | ef7a48df7584b038c6e3e0f1dbca5749310ef9f6 (patch) | |
tree | 41103e1a939c2f9f2d9abea0c23e0e1310dd2b60 /activerecord/lib/active_record/explain_subscriber.rb | |
parent | 0513f6ca9c43f475ddad97037ea8f42705147bd8 (diff) | |
download | rails-ef7a48df7584b038c6e3e0f1dbca5749310ef9f6.tar.gz rails-ef7a48df7584b038c6e3e0f1dbca5749310ef9f6.tar.bz2 rails-ef7a48df7584b038c6e3e0f1dbca5749310ef9f6.zip |
let EXPLAIN use a thread locals registry [John J. Wang & Xavier Noria]
Closes #10198.
Diffstat (limited to 'activerecord/lib/active_record/explain_subscriber.rb')
-rw-r--r-- | activerecord/lib/active_record/explain_subscriber.rb | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/explain_subscriber.rb b/activerecord/lib/active_record/explain_subscriber.rb index 0f927496fb..a3bc56d600 100644 --- a/activerecord/lib/active_record/explain_subscriber.rb +++ b/activerecord/lib/active_record/explain_subscriber.rb @@ -1,4 +1,5 @@ require 'active_support/notifications' +require 'active_record/explain_registry' module ActiveRecord class ExplainSubscriber # :nodoc: @@ -7,8 +8,8 @@ module ActiveRecord end def finish(name, id, payload) - if queries = Thread.current[:available_queries_for_explain] - queries << payload.values_at(:sql, :binds) unless ignore_payload?(payload) + if ExplainRegistry.collect? && !ignore_payload?(payload) + ExplainRegistry.queries << payload.values_at(:sql, :binds) end end |