class Sequel::SQLite::Dataset
Constants
- BindArgumentMethods
- PreparedStatementMethods
Public Instance Methods
Source
# File lib/sequel/adapters/sqlite.rb 403 def complex_expression_sql_append(sql, op, args) 404 case op 405 when :~, :'!~', :'~*', :'!~*' 406 return super unless supports_regexp? 407 408 case_insensitive = [:'~*', :'!~*'].include?(op) 409 sql << 'NOT ' if [:'!~', :'!~*'].include?(op) 410 sql << '(' 411 sql << 'LOWER(' if case_insensitive 412 literal_append(sql, args[0]) 413 sql << ')' if case_insensitive 414 sql << ' REGEXP ' 415 sql << 'LOWER(' if case_insensitive 416 literal_append(sql, args[1]) 417 sql << ')' if case_insensitive 418 sql << ')' 419 else 420 super 421 end 422 end
Support regexp functions if using :setup_regexp_function Database option.
Calls superclass method
Sequel::SQLite::DatasetMethods#complex_expression_sql_append
Source
# File lib/sequel/adapters/sqlite.rb 424 def fetch_rows(sql) 425 execute(sql) do |result| 426 cps = db.conversion_procs 427 type_procs = result.types.map{|t| cps[base_type_name(t)]} 428 j = -1 429 cols = result.columns.map{|c| [output_identifier(c), type_procs[(j+=1)]]} 430 self.columns = cols.map(&:first) 431 max = cols.length 432 result.each do |values| 433 row = {} 434 i = -1 435 while (i += 1) < max 436 name, type_proc = cols[i] 437 v = values[i] 438 if type_proc && v 439 v = type_proc.call(v) 440 end 441 row[name] = v 442 end 443 yield row 444 end 445 end 446 end
Source
# File lib/sequel/adapters/sqlite.rb 449 def supports_regexp? 450 db.allow_regexp? 451 end
Support regexp if using :setup_regexp_function Database option.
Private Instance Methods
Source
# File lib/sequel/adapters/sqlite.rb 456 def base_type_name(t) 457 (t =~ /^(.*?)\(/ ? $1 : t).downcase if t 458 end
The base type name for a given type, without any parenthetical part.
Source
# File lib/sequel/adapters/sqlite.rb 465 def bound_variable_modules 466 [BindArgumentMethods] 467 end
Source
# File lib/sequel/adapters/sqlite.rb 461 def literal_string_append(sql, v) 462 sql << "'" << ::SQLite3::Database.quote(v) << "'" 463 end
Quote the string using the adapter class method.
Source
# File lib/sequel/adapters/sqlite.rb 474 def prepared_arg_placeholder 475 ':' 476 end
SQLite uses a : before the name of the argument as a placeholder.
Source
# File lib/sequel/adapters/sqlite.rb 469 def prepared_statement_modules 470 [PreparedStatementMethods] 471 end