Class: Sequel::SQLite::Dataset
- Includes:
- DatasetMethods
- Defined in:
- lib/sequel/adapters/sqlite.rb
Defined Under Namespace
Modules: ArgumentMapper
Constant Summary collapse
- BindArgumentMethods =
prepared_statements_module(:bind, ArgumentMapper)
- PreparedStatementMethods =
prepared_statements_module(:prepare, BindArgumentMethods)
Constants included from DatasetMethods
Sequel::SQLite::DatasetMethods::CONSTANT_MAP, Sequel::SQLite::DatasetMethods::EXTRACT_MAP, Sequel::SQLite::DatasetMethods::INSERT_CONFLICT_RESOLUTIONS
Instance Method Summary collapse
-
#complex_expression_sql_append(sql, op, args) ⇒ Object
Support regexp functions if using :setup_regexp_function Database option.
- #fetch_rows(sql) ⇒ Object
-
#supports_regexp? ⇒ Boolean
Support regexp if using :setup_regexp_function Database option.
Methods included from DatasetMethods
#cast_sql_append, #constant_sql_append, #delete, #empty?, #explain, #having, #insert_conflict, #insert_ignore, #insert_select, #insert_select_sql, #quoted_identifier_append, #returning, #select, #supports_cte?, #supports_cte_in_subqueries?, #supports_deleting_joins?, #supports_derived_column_lists?, #supports_intersect_except_all?, #supports_is_true?, #supports_modifying_joins?, #supports_multiple_column_in?, #supports_returning?, #supports_timestamp_timezones?, #supports_where_true?, #supports_window_clause?, #supports_window_function_frame_option?, #supports_window_functions?
Instance Method Details
#complex_expression_sql_append(sql, op, args) ⇒ Object
Support regexp functions if using :setup_regexp_function Database option.
399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 |
# File 'lib/sequel/adapters/sqlite.rb', line 399 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) ⇒ Object
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 |
# File 'lib/sequel/adapters/sqlite.rb', line 420 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? ⇒ Boolean
Support regexp if using :setup_regexp_function Database option.
445 446 447 |
# File 'lib/sequel/adapters/sqlite.rb', line 445 def supports_regexp? db.allow_regexp? end |