Method: Sequel::SQLite::Dataset#fetch_rows

Defined in:
lib/sequel/adapters/sqlite.rb

#fetch_rows(sql) ⇒ Object

[View source]

406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
# File 'lib/sequel/adapters/sqlite.rb', line 406

def fetch_rows(sql)
  execute(sql) do |result|
    cps = db.conversion_procs
    type_procs = result.types.map{|t| cps[base_type_name(t)]}
    j = -1
    cols = result.columns.map{|c| [output_identifier(c), type_procs[(j+=1)]]}
    self.columns = cols.map(&:first)
    max = cols.length
    result.each do |values|
      row = {}
      i = -1
      while (i += 1) < max
        name, type_proc = cols[i]
        v = values[i]
        if type_proc && v
          v = type_proc.call(v)
        end
        row[name] = v
      end
      yield row
    end
  end
end