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 292 292: def cast_sql_append(sql, expr, type) 293: if(type == String) 294: sql << CAST_STRING_OPEN 295: literal_append(sql, expr) 296: sql << CAST_STRING_CLOSE 297: else 298: super 299: end 300: end
# File lib/sequel/adapters/shared/db2.rb, line 302 302: def complex_expression_sql_append(sql, op, args) 303: case op 304: when :&, :|, :^, :%, :<<, :>> 305: complex_expression_emulate_append(sql, op, args) 306: when 'B~''B~' 307: literal_append(sql, SQL::Function.new(:BITNOT, *args)) 308: when :extract 309: sql << args.at(0).to_s 310: sql << PAREN_OPEN 311: literal_append(sql, args.at(1)) 312: sql << PAREN_CLOSE 313: else 314: super 315: end 316: end
# File lib/sequel/adapters/shared/db2.rb, line 318 318: def supports_cte?(type=:select) 319: type == :select 320: end