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.
Calls superclass method
Sequel::SQLite::DatasetMethods#complex_expression_sql_append
# File lib/sequel/adapters/sqlite.rb, line 380 def complex_expression_sql_append(sql, op, args) case op when :~, :'!~', :'~*', :'!~*' return super unless supports_regexp? case_insensitive = [:'~*', :'!~*'].include?(op) sql << 'NOT ' if [:'!~', :'!~*'].include?(op) sql << '(' sql << 'LOWER(' if case_insensitive literal_append(sql, args[0]) sql << ')' if case_insensitive sql << ' REGEXP ' sql << 'LOWER(' if case_insensitive literal_append(sql, args[1]) sql << ')' if case_insensitive sql << ')' else super end end
fetch_rows(sql) { |row| ... }
click to toggle source
# File lib/sequel/adapters/sqlite.rb, line 401 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
supports_regexp?()
click to toggle source
Support regexp if using :setup_regexp_function Database option.
# File lib/sequel/adapters/sqlite.rb, line 426 def supports_regexp? db.allow_regexp? 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 433 def base_type_name(t) (t =~ /^(.*?)\(/ ? $1 : t).downcase if t end
bound_variable_modules()
click to toggle source
# File lib/sequel/adapters/sqlite.rb, line 442 def bound_variable_modules [BindArgumentMethods] 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 438 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 451 def prepared_arg_placeholder ':' end
prepared_statement_modules()
click to toggle source
# File lib/sequel/adapters/sqlite.rb, line 446 def prepared_statement_modules [PreparedStatementMethods] end