aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/explain_subscriber.rb
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2013-04-16 22:46:55 +0200
committerXavier Noria <fxn@hashref.com>2013-04-16 22:46:55 +0200
commitef7a48df7584b038c6e3e0f1dbca5749310ef9f6 (patch)
tree41103e1a939c2f9f2d9abea0c23e0e1310dd2b60 /activerecord/lib/active_record/explain_subscriber.rb
parent0513f6ca9c43f475ddad97037ea8f42705147bd8 (diff)
downloadrails-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.rb5
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