class Sequel::SQLite::Dataset

Dataset class for SQLite datasets that use the ruby-sqlite3 driver.

Constants

PREPARED_ARG_PLACEHOLDER

Public Instance Methods

call(type, bind_vars={}, *values, &block) click to toggle source

Execute the given type of statement with the hash of values.

# File lib/sequel/adapters/sqlite.rb, line 354
def call(type, bind_vars={}, *values, &block)
  ps = to_prepared_statement(type, values)
  ps.extend(BindArgumentMethods)
  ps.call(bind_vars, &block)
end
fetch_rows(sql) { |row| ... } click to toggle source

Yield a hash for each row in the dataset.

# File lib/sequel/adapters/sqlite.rb, line 361
def fetch_rows(sql)
  execute(sql) do |result|
    i = -1
    cps = db.conversion_procs
    type_procs = result.types.map{|t| cps[base_type_name(t)]}
    cols = result.columns.map{|c| i+=1; [output_identifier(c), i, type_procs[i]]}
    @columns = cols.map{|c| c.first}
    result.each do |values|
      row = {}
      cols.each do |name,id,type_proc|
        v = values[id]
        if type_proc && v
          v = type_proc.call(v)
        end
        row[name] = v
      end
      yield row
    end
  end
end
prepare(type, name=nil, *values) click to toggle source

Prepare the given type of query with the given name and store it in the database. Note that a new native prepared statement is created on each call to this prepared statement.

# File lib/sequel/adapters/sqlite.rb, line 385
def prepare(type, name=nil, *values)
  ps = to_prepared_statement(type, values)
  ps.extend(PreparedStatementMethods)
  if name
    ps.prepared_statement_name = name
    db.set_prepared_statement(name, ps)
  end
  ps
end

Private Instance Methods

base_type_name(t) click to toggle source

The base type name for a given type, without any parenthetical part.

# File lib/sequel/adapters/sqlite.rb, line 398
def base_type_name(t)
  (t =~ /^(.*?)\(/ ? $1 : t).downcase if t
end
literal_string_append(sql, v) click to toggle source

Quote the string using the adapter class method.

# File lib/sequel/adapters/sqlite.rb, line 403
def literal_string_append(sql, v)
  sql << "'" << ::SQLite3::Database.quote(v) << "'"
end
prepared_arg_placeholder() click to toggle source

SQLite uses a : before the name of the argument as a placeholder.

# File lib/sequel/adapters/sqlite.rb, line 408
def prepared_arg_placeholder
  PREPARED_ARG_PLACEHOLDER
end