instance method exec_queries

Ruby on Rails 6.1.7.10

Since v5.2.8.1 Last seen in v7.2.3

Available in: v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3

Signature

exec_queries()

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.

Source
# File activerecord/lib/active_record/relation/record_fetch_warning.rb, line 16
      def exec_queries
        QueryRegistry.reset

        super.tap do |records|
          if logger && warn_on_records_fetched_greater_than
            if records.length > warn_on_records_fetched_greater_than
              logger.warn "Query fetched #{records.size} #{@klass} records: #{QueryRegistry.queries.join(";")}"
            end
          end
        end
      end

Defined in activerecord/lib/active_record/relation/record_fetch_warning.rb line 16 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::Relation::RecordFetchWarning

Type at least 2 characters to search.

↑↓ navigate · open · esc close