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 342 def complex_expression_sql_append(sql, op, args) 343 case op 344 when :~, :'!~', :'~*', :'!~*' 345 return super unless supports_regexp? 346 347 case_insensitive = [:'~*', :'!~*'].include?(op) 348 sql << 'NOT ' if [:'!~', :'!~*'].include?(op) 349 sql << '(' 350 sql << 'LOWER(' if case_insensitive 351 literal_append(sql, args[0]) 352 sql << ')' if case_insensitive 353 sql << ' REGEXP ' 354 sql << 'LOWER(' if case_insensitive 355 literal_append(sql, args[1]) 356 sql << ')' if case_insensitive 357 sql << ')' 358 else 359 super 360 end 361 end
fetch_rows(sql) { |row| ... }
click to toggle source
# File lib/sequel/adapters/sqlite.rb 363 def fetch_rows(sql) 364 execute(sql) do |result| 365 cps = db.conversion_procs 366 type_procs = result.types.map{|t| cps[base_type_name(t)]} 367 j = -1 368 cols = result.columns.map{|c| [output_identifier(c), type_procs[(j+=1)]]} 369 self.columns = cols.map(&:first) 370 max = cols.length 371 result.each do |values| 372 row = {} 373 i = -1 374 while (i += 1) < max 375 name, type_proc = cols[i] 376 v = values[i] 377 if type_proc && v 378 v = type_proc.call(v) 379 end 380 row[name] = v 381 end 382 yield row 383 end 384 end 385 end
supports_regexp?()
click to toggle source
Support regexp if using :setup_regexp_function Database
option.
# File lib/sequel/adapters/sqlite.rb 388 def supports_regexp? 389 db.allow_regexp? 390 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 395 def base_type_name(t) 396 (t =~ /^(.*?)\(/ ? $1 : t).downcase if t 397 end
bound_variable_modules()
click to toggle source
# File lib/sequel/adapters/sqlite.rb 404 def bound_variable_modules 405 [BindArgumentMethods] 406 end
literal_string_append(sql, v)
click to toggle source
Quote the string using the adapter class method.
# File lib/sequel/adapters/sqlite.rb 400 def literal_string_append(sql, v) 401 sql << "'" << ::SQLite3::Database.quote(v) << "'" 402 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 413 def prepared_arg_placeholder 414 ':' 415 end
prepared_statement_modules()
click to toggle source
# File lib/sequel/adapters/sqlite.rb 408 def prepared_statement_modules 409 [PreparedStatementMethods] 410 end