# File lib/dm-aggregates/adapters/dm-do-adapter.rb, line 6 def aggregate(query) fields = query.fields types = fields.map { |p| p.respond_to?(:operator) ? String : p.primitive } field_size = fields.size records = [] with_connection do |connection| statement, bind_values = select_statement(query) command = connection.create_command(statement) command.set_types(types) reader = command.execute_reader(*bind_values) begin while(reader.next!) row = fields.zip(reader.values).map do |field, value| if field.respond_to?(:operator) send(field.operator, field.target, value) else field.load(value) end end records << (field_size > 1 ? row : row[0]) end ensure reader.close end end records end
Generated with the Darkfish Rdoc Generator 2.