Class/Module Index [+]

Quicksearch

Sequel::DB2::DatasetMethods

Public Instance Methods

cast_sql_append(sql, expr, type) click to toggle source

DB2 casts strings using RTRIM and CHAR instead of VARCHAR.

# File lib/sequel/adapters/shared/db2.rb, line 198
def cast_sql_append(sql, expr, type)
  if(type == String)
    sql << CAST_STRING_OPEN
    literal_append(sql, expr)
    sql << CAST_STRING_CLOSE
  else
    super
  end
end
complex_expression_sql_append(sql, op, args) click to toggle source

Handle DB2 specific LIKE and bitwise operator support, and emulate the extract method, which DB2 doesn't natively support.

# File lib/sequel/adapters/shared/db2.rb, line 210
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 :&, :|, :^
    # works with db2 v9.5 and after
    op = BITWISE_METHOD_MAP[op]
    sql << complex_expression_arg_pairs(args){|a, b| literal(SQL::Function.new(op, a, b))}
  when :<<
    sql << complex_expression_arg_pairs(args){|a, b| "(#{literal(a)} * POWER(2, #{literal(b)}))"}
  when :>>
    sql << complex_expression_arg_pairs(args){|a, b| "(#{literal(a)} / POWER(2, #{literal(b)}))"}
  when :'B~'
    literal_append(sql, SQL::Function.new(:BITNOT, *args))
  when :extract
    sql << args.at(0).to_s
    sql << PAREN_OPEN
    literal_append(sql, args.at(1))
    sql << PAREN_CLOSE
  else
    super
  end
end
supports_group_cube?() click to toggle source

DB2 supports GROUP BY CUBE

# File lib/sequel/adapters/shared/db2.rb, line 237
def supports_group_cube?
  true
end
supports_group_rollup?() click to toggle source

DB2 supports GROUP BY ROLLUP

# File lib/sequel/adapters/shared/db2.rb, line 242
def supports_group_rollup?
  true
end
supports_is_true?() click to toggle source

DB2 does not support IS TRUE.

# File lib/sequel/adapters/shared/db2.rb, line 247
def supports_is_true?
  false
end
supports_multiple_column_in?() click to toggle source

DB2 does not support multiple columns in IN.

# File lib/sequel/adapters/shared/db2.rb, line 252
def supports_multiple_column_in?
  false
end
supports_select_all_and_column?() click to toggle source

DB2 only allows * in SELECT if it is the only thing being selected.

# File lib/sequel/adapters/shared/db2.rb, line 257
def supports_select_all_and_column?
  false
end
supports_timestamp_usecs?() click to toggle source

DB2 does not support fractional seconds in timestamps.

# File lib/sequel/adapters/shared/db2.rb, line 262
def supports_timestamp_usecs?
  false
end
supports_where_true?() click to toggle source

DB2 does not support WHERE 1.

# File lib/sequel/adapters/shared/db2.rb, line 272
def supports_where_true?
  false
end
supports_window_functions?() click to toggle source

DB2 supports window functions

# File lib/sequel/adapters/shared/db2.rb, line 267
def supports_window_functions?
  true
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.