Module | Sequel::DB2::DatasetMethods |
In: |
lib/sequel/adapters/shared/db2.rb
|
PAREN_CLOSE | = | Dataset::PAREN_CLOSE |
PAREN_OPEN | = | Dataset::PAREN_OPEN |
BITWISE_METHOD_MAP | = | {:& =>:BITAND, :| => :BITOR, :^ => :BITXOR, :'B~'=>:BITNOT} |
EMULATED_FUNCTION_MAP | = | {:char_length=>'length'.freeze} |
BOOL_TRUE | = | '1'.freeze |
BOOL_FALSE | = | '0'.freeze |
CAST_STRING_OPEN | = | "RTRIM(CHAR(".freeze |
CAST_STRING_CLOSE | = | "))".freeze |
FETCH_FIRST_ROW_ONLY | = | " FETCH FIRST ROW ONLY".freeze |
FETCH_FIRST | = | " FETCH FIRST ".freeze |
ROWS_ONLY | = | " ROWS ONLY".freeze |
EMPTY_FROM_TABLE | = | ' FROM "SYSIBM"."SYSDUMMY1"'.freeze |
HSTAR | = | "H*".freeze |
BLOB_OPEN | = | "BLOB(X'".freeze |
BLOB_CLOSE | = | "')".freeze |
DB2 casts strings using RTRIM and CHAR instead of VARCHAR.
# File lib/sequel/adapters/shared/db2.rb, line 256 256: def cast_sql_append(sql, expr, type) 257: if(type == String) 258: sql << CAST_STRING_OPEN 259: literal_append(sql, expr) 260: sql << CAST_STRING_CLOSE 261: else 262: super 263: end 264: end
# File lib/sequel/adapters/shared/db2.rb, line 266 266: def complex_expression_sql_append(sql, op, args) 267: case op 268: when :&, :|, :^, :%, :<<, :>> 269: complex_expression_emulate_append(sql, op, args) 270: when 'B~''B~' 271: literal_append(sql, SQL::Function.new(:BITNOT, *args)) 272: when :extract 273: sql << args.at(0).to_s 274: sql << PAREN_OPEN 275: literal_append(sql, args.at(1)) 276: sql << PAREN_CLOSE 277: else 278: super 279: end 280: end
# File lib/sequel/adapters/shared/db2.rb, line 282 282: def supports_cte?(type=:select) 283: type == :select 284: end