module Safrano::Filter::FuncTreeSqlite

sqlite adapter specific function handler

Public Instance Methods

ceiling(_lq) click to toggle source
# File lib/odata/filter/sequel_function_adapter.rb, line 63
def ceiling(_lq)
  Safrano::FilterFunctionNotImplementedError.new("$filter function 'ceiling' is not implemented in sqlite adapter")
end
day(lq) click to toggle source
# File lib/odata/filter/sequel_function_adapter.rb, line 55
def day(lq)
  Sequel.function(:strftime, '%d', lq).cast(:integer)
end
floor(_lq) click to toggle source
# File lib/odata/filter/sequel_function_adapter.rb, line 59
def floor(_lq)
  Safrano::FilterFunctionNotImplementedError.new("$filter function 'floor' is not implemented in sqlite adapter")
end
hour(lq) click to toggle source
# File lib/odata/filter/sequel_function_adapter.rb, line 51
def hour(lq)
  Sequel.function(:strftime, '%H', lq).cast(:integer)
end
minute(lq) click to toggle source
# File lib/odata/filter/sequel_function_adapter.rb, line 47
def minute(lq)
  Sequel.function(:strftime, '%M', lq).cast(:integer)
end
month(lq) click to toggle source
# File lib/odata/filter/sequel_function_adapter.rb, line 39
def month(lq)
  Sequel.function(:strftime, '%m', lq).cast(:integer)
end
second(lq) click to toggle source
# File lib/odata/filter/sequel_function_adapter.rb, line 43
def second(lq)
  Sequel.function(:strftime, '%S', lq).cast(:integer)
end
substringof_sig2(jh) click to toggle source
# File lib/odata/filter/sequel_function_adapter.rb, line 10
def substringof_sig2(jh)
  # substringof(name, '__Route du Rhum__')  -->
  # '__Route du Rhum__' contains name as a substring
  # sqlite uses instr()
  Contract.collect_result!(args[1].leuqes(jh),
                           args[0].leuqes(jh)) do |l1, l0|
    substr_func = Sequel.function(:instr, l1, l0)
    Sequel::SQL::BooleanExpression.new(:>, substr_func, 0)
  end
end
year(lq) click to toggle source

sqlite does not have extract but recommends to use strftime

# File lib/odata/filter/sequel_function_adapter.rb, line 35
def year(lq)
  Sequel.function(:strftime, '%Y', lq).cast(:integer)
end