aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/core.rb
diff options
context:
space:
mode:
authorJason Nochlin <hundredwatt@gmail.com>2015-02-07 15:33:13 -0500
committerJason Nochlin <hundredwatt@users.noreply.github.com>2015-03-25 16:50:11 -0400
commit4d6fbe2934e94384e722ff6ca16e97c8978d4665 (patch)
treea00424fc01863d0c76c466cf33f692ebde67091e /activerecord/lib/active_record/core.rb
parent348377da4d623a81b570b2bf46e6ef9e5ee4e12f (diff)
downloadrails-4d6fbe2934e94384e722ff6ca16e97c8978d4665.tar.gz
rails-4d6fbe2934e94384e722ff6ca16e97c8978d4665.tar.bz2
rails-4d6fbe2934e94384e722ff6ca16e97c8978d4665.zip
Add `config.active_record.warn_on_records_fetched_greater_than` option
When set to an integer, a warning will be logged whenever a result set larger than the specified size is returned by a query. Fixes #16463 The warning is outputed a module which is prepended in an initializer, so there will be no performance impact if `config.active_record.warn_on_records_fetched_greater_than` is not set.
Diffstat (limited to 'activerecord/lib/active_record/core.rb')
-rw-r--r--activerecord/lib/active_record/core.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/core.rb b/activerecord/lib/active_record/core.rb
index 9a39a0e919..a17eb226f4 100644
--- a/activerecord/lib/active_record/core.rb
+++ b/activerecord/lib/active_record/core.rb
@@ -94,6 +94,15 @@ module ActiveRecord
mattr_accessor :dump_schemas, instance_writer: false
self.dump_schemas = :schema_search_path
+ ##
+ # :singleton-method:
+ # Specify a threshold for the size of query result sets. If the
+ # number of records in the set exceeds threshold, a warning is
+ # logged. This should be used to identify queries which pull
+ # thousands of records, which may cause memory bloat.
+ mattr_accessor :warn_on_records_fetched_greater_than, instance_writer: false
+ self.warn_on_records_fetched_greater_than = nil
+
mattr_accessor :maintain_test_schema, instance_accessor: false
mattr_accessor :belongs_to_required_by_default, instance_accessor: false