Method: ActiveRecord::Querying#_load_from_sql

Defined in:
activerecord/lib/active_record/querying.rb

#_load_from_sql(result_set, &block) ⇒ Object

:nodoc:



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'activerecord/lib/active_record/querying.rb', line 73

def _load_from_sql(result_set, &block) # :nodoc:
  column_types = result_set.column_types

  unless column_types.empty?
    column_types = column_types.reject { |k, _| attribute_types.key?(k) }
  end

  message_bus = ActiveSupport::Notifications.instrumenter

  payload = {
    record_count: result_set.length,
    class_name: name
  }

  message_bus.instrument("instantiation.active_record", payload) do
    if result_set.includes_column?(inheritance_column)
      result_set.map { |record| instantiate(record, column_types, &block) }
    else
      # Instantiate a homogeneous set
      result_set.map { |record| instantiate_instance_of(self, record, column_types, &block) }
    end
  end
end