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
201 def complex_expression_sql_append(sql, op, args)
202   case op
203   when :ILIKE, :"NOT ILIKE"
204     super(sql, (op == :ILIKE ? :LIKE : :"NOT LIKE"), [SQL::PlaceholderLiteralString.new(ILIKE_PLACEHOLDER, [args[0]]), args[1]])
205   when :&, :|, :^, :<<, :>>, :'B~'
206     complex_expression_emulate_append(sql, op, args)
207   else
208     super
209   end
210 end
requires_sql_standard_datetimes?() click to toggle source

H2 requires SQL standard datetimes

    # File lib/sequel/adapters/jdbc/h2.rb
218 def requires_sql_standard_datetimes?
219   true
220 end
supports_derived_column_lists?() click to toggle source

H2 does not support derived column lists

    # File lib/sequel/adapters/jdbc/h2.rb
213 def supports_derived_column_lists?
214   false
215 end
supports_is_true?() click to toggle source

H2 doesn’t support IS TRUE

    # File lib/sequel/adapters/jdbc/h2.rb
223 def supports_is_true?
224   false
225 end
supports_join_using?() click to toggle source

H2 doesn’t support JOIN USING

    # File lib/sequel/adapters/jdbc/h2.rb
228 def supports_join_using?
229   false
230 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
233 def supports_multiple_column_in?
234   false
235 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
240 def literal_blob_append(sql, v)
241   if db.send(:version2?)
242     super
243   else
244     sql << "'" << v.unpack("H*").first << "'"
245   end
246 end
literal_false() click to toggle source
    # File lib/sequel/adapters/jdbc/h2.rb
248 def literal_false
249   'FALSE'
250 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
257 def literal_sqltime(v)
258   v.strftime("'%H:%M:%S'")
259 end
literal_true() click to toggle source
    # File lib/sequel/adapters/jdbc/h2.rb
252 def literal_true
253   'TRUE'
254 end
multi_insert_sql_strategy() click to toggle source

H2 supports multiple rows in INSERT.

    # File lib/sequel/adapters/jdbc/h2.rb
262 def multi_insert_sql_strategy
263   :values
264 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
266 def select_only_offset_sql(sql)
267   if db.send(:version2?)
268     super
269   else
270     sql << " LIMIT -1 OFFSET "
271     literal_append(sql, @opts[:offset])
272   end
273 end
supports_quoted_function_names?() click to toggle source

H2 supports quoted function names.

    # File lib/sequel/adapters/jdbc/h2.rb
276 def supports_quoted_function_names?
277   true
278 end