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