# File lib/sqlite3/resultset.rb, line 65
    def next
      row = @stmt.step
      return nil if @stmt.done?

      if @db.type_translation
        row = @stmt.types.zip(row).map do |type, value|
          @db.translator.translate( type, value )
        end
      end

      if @db.results_as_hash
        new_row = HashWithTypes[*@stmt.columns.zip(row).flatten]
        row.each_with_index { |value,idx|
          new_row[idx] = value
        }
        row = new_row
      else
        if row.respond_to?(:fields)
          row = ArrayWithTypes.new(row)
        else
          row = ArrayWithTypesAndFields.new(row)
        end
        row.fields = @stmt.columns
      end

      row.types = @stmt.types
      row
    end