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 115 115: def complex_expression_sql(op, args) 116: case op 117: when :ILIKE 118: super(:LIKE, [SQL::PlaceholderLiteralString.new("CAST(? AS VARCHAR_IGNORECASE)", [args.at(0)]), args.at(1)]) 119: when "NOT ILIKE""NOT ILIKE" 120: super("NOT LIKE""NOT LIKE", [SQL::PlaceholderLiteralString.new("CAST(? AS VARCHAR_IGNORECASE)", [args.at(0)]), args.at(1)]) 121: when :&, :|, :^ 122: literal(SQL::Function.new(BITWISE_METHOD_MAP[op], *args)) 123: when :<< 124: "(#{literal(args[0])} * POWER(2, #{literal(args[1])}))" 125: when :>> 126: "(#{literal(args[0])} / POWER(2, #{literal(args[1])}))" 127: else 128: super(op, args) 129: end 130: end