class Sequel::JDBC::H2::Dataset

Constants

ILIKE_PLACEHOLDER

Public Instance Methods

complex_expression_sql_append(sql, op, args) click to toggle source

Emulate the case insensitive LIKE operator and the bitwise operators.

    # File lib/sequel/adapters/jdbc/h2.rb
204 def complex_expression_sql_append(sql, op, args)
205   case op
206   when :ILIKE, :"NOT ILIKE"
207     super(sql, (op == :ILIKE ? :LIKE : :"NOT LIKE"), [SQL::PlaceholderLiteralString.new(ILIKE_PLACEHOLDER, [args[0]]), args[1]])
208   when :&, :|, :^, :<<, :>>, :'B~'
209     complex_expression_emulate_append(sql, op, args)
210   else
211     super
212   end
213 end
requires_sql_standard_datetimes?() click to toggle source

H2 requires SQL standard datetimes

    # File lib/sequel/adapters/jdbc/h2.rb
221 def requires_sql_standard_datetimes?
222   true
223 end
supports_derived_column_lists?() click to toggle source

H2 does not support derived column lists

    # File lib/sequel/adapters/jdbc/h2.rb
216 def supports_derived_column_lists?
217   false
218 end
supports_is_true?() click to toggle source

H2 doesn’t support IS TRUE

    # File lib/sequel/adapters/jdbc/h2.rb
226 def supports_is_true?
227   false
228 end
supports_join_using?() click to toggle source

H2 doesn’t support JOIN USING

    # File lib/sequel/adapters/jdbc/h2.rb
231 def supports_join_using?
232   false
233 end
supports_merge?() click to toggle source

H2 supports MERGE

    # File lib/sequel/adapters/jdbc/h2.rb
236 def supports_merge?
237   true
238 end
supports_multiple_column_in?() click to toggle source

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

    # File lib/sequel/adapters/jdbc/h2.rb
241 def supports_multiple_column_in?
242   false
243 end

Private Instance Methods

literal_blob_append(sql, v) click to toggle source

H2 expects hexadecimal strings for blob values

Calls superclass method Sequel::Dataset#literal_blob_append
    # File lib/sequel/adapters/jdbc/h2.rb
248 def literal_blob_append(sql, v)
249   if db.send(:version2?)
250     super
251   else
252     sql << "'" << v.unpack("H*").first << "'"
253   end
254 end
literal_false() click to toggle source
    # File lib/sequel/adapters/jdbc/h2.rb
256 def literal_false
257   'FALSE'
258 end
literal_sqltime(v) click to toggle source

H2 handles fractional seconds in timestamps, but not in times

    # File lib/sequel/adapters/jdbc/h2.rb
265 def literal_sqltime(v)
266   v.strftime("'%H:%M:%S'")
267 end
literal_true() click to toggle source
    # File lib/sequel/adapters/jdbc/h2.rb
260 def literal_true
261   'TRUE'
262 end
multi_insert_sql_strategy() click to toggle source

H2 supports multiple rows in INSERT.

    # File lib/sequel/adapters/jdbc/h2.rb
270 def multi_insert_sql_strategy
271   :values
272 end
select_only_offset_sql(sql) click to toggle source
Calls superclass method Sequel::Dataset#select_only_offset_sql
    # File lib/sequel/adapters/jdbc/h2.rb
274 def select_only_offset_sql(sql)
275   if db.send(:version2?)
276     super
277   else
278     sql << " LIMIT -1 OFFSET "
279     literal_append(sql, @opts[:offset])
280   end
281 end
supports_quoted_function_names?() click to toggle source

H2 supports quoted function names.

    # File lib/sequel/adapters/jdbc/h2.rb
284 def supports_quoted_function_names?
285   true
286 end