| 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