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

H2 requires SQL standard datetimes

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

H2 does not support derived column lists

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

H2 doesn't support IS TRUE

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

H2 doesn't support JOIN USING

# File lib/sequel/adapters/jdbc/h2.rb, line 230
def supports_join_using?
  false
end
supports_merge?() click to toggle source

H2 supports MERGE

# File lib/sequel/adapters/jdbc/h2.rb, line 235
def supports_merge?
  true
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, line 240
def supports_multiple_column_in?
  false
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, line 247
def literal_blob_append(sql, v)
  if db.send(:version2?)
    super
  else
    sql << "'" << v.unpack("H*").first << "'"
  end
end
literal_false() click to toggle source
# File lib/sequel/adapters/jdbc/h2.rb, line 255
def literal_false
  'FALSE'
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, line 264
def literal_sqltime(v)
  v.strftime("'%H:%M:%S'")
end
literal_true() click to toggle source
# File lib/sequel/adapters/jdbc/h2.rb, line 259
def literal_true
  'TRUE'
end
multi_insert_sql_strategy() click to toggle source

H2 supports multiple rows in INSERT.

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

H2 supports quoted function names.

# File lib/sequel/adapters/jdbc/h2.rb, line 283
def supports_quoted_function_names?
  true
end