Instance Public methods

When this module is prepended to ActiveRecord::Relation and config.active_record.warn_on_records_fetched_greater_than is set to an integer, if the number of records a query returns is greater than the value of warn_on_records_fetched_greater_than, a warning is logged. This allows for the detection of queries that return a large number of records, which could cause memory bloat.

In most cases, fetching large number of records can be performed efficiently using the ActiveRecord::Batches methods. See ActiveRecord::Batches for more information.

   # File activerecord/lib/active_record/relation/record_fetch_warning.rb
16 def exec_queries
17   QueryRegistry.reset
19   super.tap do
20     if logger && warn_on_records_fetched_greater_than
21       if @records.length > warn_on_records_fetched_greater_than
22         logger.warn "Query fetched #{@records.size} #{@klass} records: #{QueryRegistry.queries.join(";")}"
23       end
24     end
25   end
26 end