class ActiveRecord::Associations::Preloader::Association

def load_records(raw_records = nil)

def load_records(raw_records = nil)
  # owners can be duplicated when a relation has a collection association join
  # #compare_by_identity makes such owners different hash keys
  @records_by_owner = {}.compare_by_identity
  raw_records ||= loader_query.records_for([self])
  @preloaded_records = raw_records.select do |record|
    assignments = false
    owners_by_key[convert_key(record[association_key_name])]&.each do |owner|
      entries = (@records_by_owner[owner] ||= [])
      if reflection.collection? || entries.empty?
        entries << record
        assignments = true
      end
    end
    assignments
  end
end