class Sequel::SQLite::Dataset

Constants

BindArgumentMethods
PreparedStatementMethods

Public Instance Methods

complex_expression_sql_append(sql, op, args) click to toggle source

Support regexp functions if using :setup_regexp_function Database option.

    # File lib/sequel/adapters/sqlite.rb
363 def complex_expression_sql_append(sql, op, args)
364   case op
365   when :~, :'!~', :'~*', :'!~*'
366     return super unless supports_regexp?
367 
368     case_insensitive = [:'~*', :'!~*'].include?(op)
369     sql << 'NOT ' if [:'!~', :'!~*'].include?(op)
370     sql << '('
371     sql << 'LOWER(' if case_insensitive
372     literal_append(sql, args[0])
373     sql << ')' if case_insensitive
374     sql << ' REGEXP '
375     sql << 'LOWER(' if case_insensitive
376     literal_append(sql, args[1])
377     sql << ')' if case_insensitive
378     sql << ')'
379   else
380     super
381   end
382 end
fetch_rows(sql) { |row| ... } click to toggle source
    # File lib/sequel/adapters/sqlite.rb
384 def fetch_rows(sql)
385   execute(sql) do |result|
386     cps = db.conversion_procs
387     type_procs = result.types.map{|t| cps[base_type_name(t)]}
388     j = -1
389     cols = result.columns.map{|c| [output_identifier(c), type_procs[(j+=1)]]}
390     self.columns = cols.map(&:first)
391     max = cols.length
392     result.each do |values|
393       row = {}
394       i = -1
395       while (i += 1) < max
396         name, type_proc = cols[i]
397         v = values[i]
398         if type_proc && v
399           v = type_proc.call(v)
400         end
401         row[name] = v
402       end
403       yield row
404     end
405   end
406 end
supports_regexp?() click to toggle source

Support regexp if using :setup_regexp_function Database option.

    # File lib/sequel/adapters/sqlite.rb
409 def supports_regexp?
410   db.allow_regexp?
411 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
416 def base_type_name(t)
417   (t =~ /^(.*?)\(/ ? $1 : t).downcase if t
418 end
bound_variable_modules() click to toggle source
    # File lib/sequel/adapters/sqlite.rb
425 def bound_variable_modules
426   [BindArgumentMethods]
427 end
literal_string_append(sql, v) click to toggle source

Quote the string using the adapter class method.

    # File lib/sequel/adapters/sqlite.rb
421 def literal_string_append(sql, v)
422   sql << "'" << ::SQLite3::Database.quote(v) << "'"
423 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
434 def prepared_arg_placeholder
435   ':'
436 end
prepared_statement_modules() click to toggle source
    # File lib/sequel/adapters/sqlite.rb
429 def prepared_statement_modules
430   [PreparedStatementMethods]
431 end