Class Sequel::JDBC::H2::Dataset
In: lib/sequel/adapters/jdbc/h2.rb
Parent: JDBC::Dataset

Dataset class for H2 datasets accessed via JDBC.

Methods

Constants

SELECT_CLAUSE_METHODS = clause_methods(:select, %w'distinct columns from join where group having compounds order limit')
BITWISE_METHOD_MAP = {:& =>:BITAND, :| => :BITOR, :^ => :BITXOR}

Public Instance methods

Work around H2‘s lack of a case insensitive LIKE operator

[Source]

     # 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

H2 requires SQL standard datetimes

[Source]

     # File lib/sequel/adapters/jdbc/h2.rb, line 133
133:         def requires_sql_standard_datetimes?
134:           true
135:         end

H2 doesn‘t support IS TRUE

[Source]

     # File lib/sequel/adapters/jdbc/h2.rb, line 138
138:         def supports_is_true?
139:           false
140:         end

H2 doesn‘t support JOIN USING

[Source]

     # File lib/sequel/adapters/jdbc/h2.rb, line 143
143:         def supports_join_using?
144:           false
145:         end

H2 doesn‘t support multiple columns in IN/NOT IN

[Source]

     # File lib/sequel/adapters/jdbc/h2.rb, line 148
148:         def supports_multiple_column_in?
149:           false
150:         end

[Validate]