def each(node = true, rel = nil, &block)
if @associations_spec.size > 0
return_object_clause = '[' + @associations_spec.map { |n| "collect(#{n})" }.join(',') + ']'
query_from_association_spec.pluck(identity, return_object_clause).map do |record, eager_data|
eager_data.each_with_index do |eager_records, index|
record.association_proxy(@associations_spec[index]).cache_result(eager_records)
end
block.call(record)
end
else
super
end
end