aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2013-05-10 07:35:41 -0700
committerXavier Noria <fxn@hashref.com>2013-05-10 07:35:41 -0700
commit7d74a3187d49dc4773c0aae8961a21f49cd480ab (patch)
treeb0180866fbdf5a6b302cf1e869f6b65f8a4ac6de
parent04d27153fcefaea380fce63e4c9d6e65b27d78b2 (diff)
parent1cc63e94dbe52a9cf01a71c1dc45ee18443f97dc (diff)
downloadrails-7d74a3187d49dc4773c0aae8961a21f49cd480ab.tar.gz
rails-7d74a3187d49dc4773c0aae8961a21f49cd480ab.tar.bz2
rails-7d74a3187d49dc4773c0aae8961a21f49cd480ab.zip
Merge pull request #10553 from dasch/dasch/dont-try-to-explain-select_db
Don't try to EXPLAIN select_db calls
-rw-r--r--activerecord/lib/active_record/explain_subscriber.rb2
-rw-r--r--activerecord/test/cases/explain_subscriber_test.rb5
2 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/explain_subscriber.rb b/activerecord/lib/active_record/explain_subscriber.rb
index a3bc56d600..6a49936644 100644
--- a/activerecord/lib/active_record/explain_subscriber.rb
+++ b/activerecord/lib/active_record/explain_subscriber.rb
@@ -19,7 +19,7 @@ module ActiveRecord
# On the other hand, we want to monitor the performance of our real database
# queries, not the performance of the access to the query cache.
IGNORED_PAYLOADS = %w(SCHEMA EXPLAIN CACHE)
- EXPLAINED_SQLS = /\A\s*(select|update|delete|insert)/i
+ EXPLAINED_SQLS = /\A\s*(select|update|delete|insert)\b/i
def ignore_payload?(payload)
payload[:exception] || IGNORED_PAYLOADS.include?(payload[:name]) || payload[:sql] !~ EXPLAINED_SQLS
end
diff --git a/activerecord/test/cases/explain_subscriber_test.rb b/activerecord/test/cases/explain_subscriber_test.rb
index fb53a92c89..b00e2744b9 100644
--- a/activerecord/test/cases/explain_subscriber_test.rb
+++ b/activerecord/test/cases/explain_subscriber_test.rb
@@ -43,6 +43,11 @@ if ActiveRecord::Base.connection.supports_explain?
assert queries.empty?
end
+ def test_collects_nothing_if_the_statement_is_only_partially_matched
+ SUBSCRIBER.finish(nil, nil, name: 'SQL', sql: 'select_db yo_mama')
+ assert queries.empty?
+ end
+
def teardown
ActiveRecord::ExplainRegistry.reset
end