class Sequel::JDBC::H2::Dataset

  1. lib/sequel/adapters/jdbc/h2.rb
Parent: H2

Dataset class for H2 datasets accessed via JDBC.

Constants

APOS = Dataset::APOS  
BITCOMP_CLOSE = ") - 1)".freeze  
BITCOMP_OPEN = "((0 - ".freeze  
BITWISE_METHOD_MAP = {:& =>:BITAND, :| => :BITOR, :^ => :BITXOR}  
H2_CLOB_METHOD = TYPE_TRANSLATOR_INSTANCE.method(:h2_clob)  
HSTAR = "H*".freeze  
ILIKE_PLACEHOLDER = ["CAST(".freeze, " AS VARCHAR_IGNORECASE)".freeze].freeze  
SELECT_CLAUSE_METHODS = clause_methods(:select, %w'select distinct columns from join where group having compounds order limit')  
TIME_FORMAT = "'%H:%M:%S'".freeze  

Public Instance methods

complex_expression_sql_append (sql, op, args)

Emulate the case insensitive LIKE operator and the bitwise operators.

[show source]
# File lib/sequel/adapters/jdbc/h2.rb, line 155
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.at(0)]), args.at(1)])
  when :&, :|, :^
    sql << complex_expression_arg_pairs(args){|a, b| literal(SQL::Function.new(BITWISE_METHOD_MAP[op], a, b))}
  when :<<
    sql << complex_expression_arg_pairs(args){|a, b| "(#{literal(a)} * POWER(2, #{literal(b)}))"}
  when :>>
    sql << complex_expression_arg_pairs(args){|a, b| "(#{literal(a)} / POWER(2, #{literal(b)}))"}
  when :'B~'
    sql << BITCOMP_OPEN
    literal_append(sql, args.at(0))
    sql << BITCOMP_CLOSE
  else
    super
  end
end
requires_sql_standard_datetimes? ()

H2 requires SQL standard datetimes

[show source]
# File lib/sequel/adapters/jdbc/h2.rb, line 175
def requires_sql_standard_datetimes?
  true
end
supports_is_true? ()

H2 doesn't support IS TRUE

[show source]
# File lib/sequel/adapters/jdbc/h2.rb, line 180
def supports_is_true?
  false
end
supports_join_using? ()

H2 doesn't support JOIN USING

[show source]
# File lib/sequel/adapters/jdbc/h2.rb, line 185
def supports_join_using?
  false
end
supports_multiple_column_in? ()

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

[show source]
# File lib/sequel/adapters/jdbc/h2.rb, line 190
def supports_multiple_column_in?
  false
end