Class | Sequel::JDBC::H2::Dataset |
In: |
lib/sequel/adapters/jdbc/h2.rb
|
Parent: | JDBC::Dataset |
SELECT_CLAUSE_METHODS | = | clause_methods(:select, %w'distinct columns from join where group having compounds order limit') |
BITWISE_METHOD_MAP | = | {:& =>:BITAND, :| => :BITOR, :^ => :BITXOR} |
Work around H2‘s lack of a case insensitive LIKE operator
# File lib/sequel/adapters/jdbc/h2.rb, line 113 113: def complex_expression_sql(op, args) 114: case op 115: when :ILIKE 116: super(:LIKE, [SQL::PlaceholderLiteralString.new("CAST(? AS VARCHAR_IGNORECASE)", [args.at(0)]), args.at(1)]) 117: when "NOT ILIKE""NOT ILIKE" 118: super("NOT LIKE""NOT LIKE", [SQL::PlaceholderLiteralString.new("CAST(? AS VARCHAR_IGNORECASE)", [args.at(0)]), args.at(1)]) 119: when :&, :|, :^ 120: literal(SQL::Function.new(BITWISE_METHOD_MAP[op], *args)) 121: when :<< 122: "(#{literal(args[0])} * POWER(2, #{literal(args[1])}))" 123: when :>> 124: "(#{literal(args[0])} / POWER(2, #{literal(args[1])}))" 125: else 126: super(op, args) 127: end 128: end