Class: Sequel::Extralite::Dataset

Inherits:
Dataset
  • Object
show all
Includes:
SQLite::DatasetMethods
Defined in:
lib/sequel/adapters/extralite.rb

Defined Under Namespace

Modules: ArgumentMapper

Constant Summary collapse

BindArgumentMethods =
prepared_statements_module(:bind, ArgumentMapper)
PreparedStatementMethods =
prepared_statements_module(:prepare, BindArgumentMethods)

Instance Method Summary collapse

Instance Method Details

#complex_expression_sql_append(sql, op, args) ⇒ Object

Support regexp functions if using :setup_regexp_function Database option.


341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
# File 'lib/sequel/adapters/extralite.rb', line 341

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, &block) ⇒ Object


362
363
364
365
366
367
368
# File 'lib/sequel/adapters/extralite.rb', line 362

def fetch_rows(sql, &block)
  execute(sql) do |result, columns|
    self.columns = columns
    # max = columns.size
    result.each(&block)
  end
end

#supports_regexp?Boolean

Support regexp if using :setup_regexp_function Database option.

Returns:

  • (Boolean)

371
372
373
# File 'lib/sequel/adapters/extralite.rb', line 371

def supports_regexp?
  db.allow_regexp?
end