class Sequel::DBI::Dataset

Constants

DatasetClass

Public Instance Methods

fetch_rows(sql) { |row| ... } click to toggle source
# File lib/sequel/adapters/dbi.rb, line 89
def fetch_rows(sql)
  execute(sql) do |s|
    begin
      columns = cols = s.column_names.map{|c| output_identifier(c)}
      if opts[:offset] && offset_returns_row_number_column?
        rn = row_number_column
        columns = columns.dup
        columns.delete(rn)
      end
      @columns = columns
      s.fetch do |r|
        row = {}
        cols.each{|c| row[c] = r.shift}
        row.delete(rn) if rn
        yield row
      end
    ensure
      s.finish rescue nil
    end
  end
  self
end