Module: Sequel::DB2::DatasetMethods
- Included in:
- IBMDB::Dataset
- Defined in:
- lib/sequel/adapters/shared/db2.rb
Constant Summary collapse
- BITWISE_METHOD_MAP =
- {:& =>:BITAND, :| => :BITOR, :^ => :BITXOR, :'B~'=>:BITNOT}.freeze 
Constants included from Sequel::Dataset::ColumnsLimit1
Sequel::Dataset::ColumnsLimit1::COLUMNS_CLONE_OPTIONS
Instance Method Summary collapse
- 
  
    
      #cast_sql_append(sql, expr, type)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    DB2 casts strings using RTRIM and CHAR instead of VARCHAR. 
- #complex_expression_sql_append(sql, op, args) ⇒ Object
- #quote_identifiers? ⇒ Boolean
- #supports_cte?(type = :select) ⇒ Boolean
- 
  
    
      #supports_group_cube?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    DB2 supports GROUP BY CUBE. 
- 
  
    
      #supports_group_rollup?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    DB2 supports GROUP BY ROLLUP. 
- 
  
    
      #supports_grouping_sets?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    DB2 supports GROUPING SETS. 
- 
  
    
      #supports_is_true?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    DB2 does not support IS TRUE. 
- 
  
    
      #supports_lateral_subqueries?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    DB2 supports lateral subqueries. 
- 
  
    
      #supports_merge?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    DB2 supports MERGE. 
- 
  
    
      #supports_multiple_column_in?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    DB2 does not support multiple columns in IN. 
- 
  
    
      #supports_select_all_and_column?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    DB2 only allows * in SELECT if it is the only thing being selected. 
- 
  
    
      #supports_where_true?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    DB2 does not support WHERE 1. 
- 
  
    
      #supports_window_functions?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    DB2 supports window functions. 
Methods included from Sequel::Dataset::ColumnsLimit1
Methods included from EmulateOffsetWithRowNumber
#empty?, #select_sql, #supports_offsets_in_correlated_subqueries?
Instance Method Details
#cast_sql_append(sql, expr, type) ⇒ Object
DB2 casts strings using RTRIM and CHAR instead of VARCHAR.
| 299 300 301 302 303 304 305 306 307 | # File 'lib/sequel/adapters/shared/db2.rb', line 299 def cast_sql_append(sql, expr, type) if(type == String) sql << "RTRIM(CHAR(" literal_append(sql, expr) sql << "))" else super end end | 
#complex_expression_sql_append(sql, op, args) ⇒ Object
| 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 | # File 'lib/sequel/adapters/shared/db2.rb', line 309 def complex_expression_sql_append(sql, op, args) case op when :&, :|, :^, :%, :<<, :>> complex_expression_emulate_append(sql, op, args) when :'B~' literal_append(sql, SQL::Function.new(:BITNOT, *args)) when :extract sql << args[0].to_s sql << '(' literal_append(sql, args[1]) sql << ')' else super end end | 
#quote_identifiers? ⇒ Boolean
| 325 326 327 | # File 'lib/sequel/adapters/shared/db2.rb', line 325 def quote_identifiers? @opts.fetch(:quote_identifiers, false) end | 
#supports_cte?(type = :select) ⇒ Boolean
| 329 330 331 | # File 'lib/sequel/adapters/shared/db2.rb', line 329 def supports_cte?(type=:select) type == :select end | 
#supports_group_cube? ⇒ Boolean
DB2 supports GROUP BY CUBE
| 334 335 336 | # File 'lib/sequel/adapters/shared/db2.rb', line 334 def supports_group_cube? true end | 
#supports_group_rollup? ⇒ Boolean
DB2 supports GROUP BY ROLLUP
| 339 340 341 | # File 'lib/sequel/adapters/shared/db2.rb', line 339 def supports_group_rollup? true end | 
#supports_grouping_sets? ⇒ Boolean
DB2 supports GROUPING SETS
| 344 345 346 | # File 'lib/sequel/adapters/shared/db2.rb', line 344 def supports_grouping_sets? true end | 
#supports_is_true? ⇒ Boolean
DB2 does not support IS TRUE.
| 349 350 351 | # File 'lib/sequel/adapters/shared/db2.rb', line 349 def supports_is_true? false end | 
#supports_lateral_subqueries? ⇒ Boolean
DB2 supports lateral subqueries
| 354 355 356 | # File 'lib/sequel/adapters/shared/db2.rb', line 354 def supports_lateral_subqueries? true end | 
#supports_merge? ⇒ Boolean
DB2 supports MERGE
| 359 360 361 | # File 'lib/sequel/adapters/shared/db2.rb', line 359 def supports_merge? true end | 
#supports_multiple_column_in? ⇒ Boolean
DB2 does not support multiple columns in IN.
| 364 365 366 | # File 'lib/sequel/adapters/shared/db2.rb', line 364 def supports_multiple_column_in? false end | 
#supports_select_all_and_column? ⇒ Boolean
DB2 only allows * in SELECT if it is the only thing being selected.
| 369 370 371 | # File 'lib/sequel/adapters/shared/db2.rb', line 369 def supports_select_all_and_column? false end | 
#supports_where_true? ⇒ Boolean
DB2 does not support WHERE 1.
| 379 380 381 | # File 'lib/sequel/adapters/shared/db2.rb', line 379 def supports_where_true? false end | 
#supports_window_functions? ⇒ Boolean
DB2 supports window functions
| 374 375 376 | # File 'lib/sequel/adapters/shared/db2.rb', line 374 def supports_window_functions? true end |