Class/Module Index [+]

Quicksearch

Sequel::JDBC::Derby::Dataset

Dataset class for Derby datasets accessed via JDBC.

Public Instance Methods

case_expression_sql_append(sql, ce) click to toggle source

Derby doesn't support an expression between CASE and WHEN, so emulate it by using an equality statement for all of the conditions.

# File lib/sequel/adapters/jdbc/derby.rb, line 178
def case_expression_sql_append(sql, ce)
  if ce.expression?
    e = ce.expression
    case_expression_sql_append(sql, ::Sequel::SQL::CaseExpression.new(ce.conditions.map{|c, r| [::Sequel::SQL::BooleanExpression.new(:'=', e, c), r]}, ce.default))
  else
    super
  end
end
cast_sql_append(sql, expr, type) click to toggle source

If the type is String, trim the extra spaces since CHAR is used instead of varchar. This can cause problems if you are casting a char/varchar to a string and the ending whitespace is important.

# File lib/sequel/adapters/jdbc/derby.rb, line 190
def cast_sql_append(sql, expr, type)
  if type == String
    sql << CAST_STRING_OPEN
    super
    sql << PAREN_CLOSE
  else
    super
  end
end
complex_expression_sql_append(sql, op, args) click to toggle source

Handle Derby specific LIKE, extract, and some bitwise compliment support.

# File lib/sequel/adapters/jdbc/derby.rb, line 201
def complex_expression_sql_append(sql, op, args)
  case op
  when :ILIKE
    super(sql, :LIKE, [SQL::Function.new(:upper, args.at(0)), SQL::Function.new(:upper, args.at(1))])
  when :"NOT ILIKE"
    super(sql, :"NOT LIKE", [SQL::Function.new(:upper, args.at(0)), SQL::Function.new(:upper, args.at(1))])
  when :%
    sql << complex_expression_arg_pairs(args){|a, b| "MOD(#{literal(a)}, #{literal(b)})"}
  when :&, :|, :^, :<<, :>>
    raise Error, "Derby doesn't support the #{op} operator"
  when :'B~'
    sql << BITCOMP_OPEN
    literal_append(sql, args.at(0))
    sql << BITCOMP_CLOSE
  when :extract
    sql << args.at(0).to_s << PAREN_OPEN
    literal_append(sql, args.at(1))
    sql << PAREN_CLOSE
  else
    super
  end
end
supports_group_rollup?() click to toggle source

Derby supports GROUP BY ROLLUP (but not CUBE)

# File lib/sequel/adapters/jdbc/derby.rb, line 225
def supports_group_rollup?
  true
end
supports_is_true?() click to toggle source

Derby does not support IS TRUE.

# File lib/sequel/adapters/jdbc/derby.rb, line 230
def supports_is_true?
  false
end
supports_multiple_column_in?() click to toggle source

Derby does not support IN/NOT IN with multiple columns

# File lib/sequel/adapters/jdbc/derby.rb, line 235
def supports_multiple_column_in?
  false
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.