# File lib/dm-do-adapter/adapter.rb, line 133 def read(query) fields = query.fields types = fields.map { |property| property.primitive } statement, bind_values = select_statement(query) records = [] with_connection do |connection| command = connection.create_command(statement) command.set_types(types) # Handle different splat semantics for nil on 1.8 and 1.9 reader = if bind_values command.execute_reader(*bind_values) else command.execute_reader end begin while reader.next! records << Hash[ fields.zip(reader.values) ] end ensure reader.close end end records end