class Sequel::JDBC::H2::Dataset
Constants
- APOS
- BITCOMP_CLOSE
- BITCOMP_OPEN
- BITWISE_METHOD_MAP
- H2_CLOB_METHOD
- HSTAR
- ILIKE_PLACEHOLDER
- SELECT_CLAUSE_METHODS
- TIME_FORMAT
Public Instance Methods
complex_expression_sql_append(sql, op, args)
click to toggle source
Emulate the case insensitive LIKE operator and the bitwise operators.
Calls superclass method
Sequel::Dataset#complex_expression_sql_append
# 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?()
click to toggle source
supports_is_true?()
click to toggle source
H2 doesn't support IS TRUE
# File lib/sequel/adapters/jdbc/h2.rb, line 180 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 185 def supports_join_using? false 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 190 def supports_multiple_column_in? false end
Private Instance Methods
convert_type_proc(v)
click to toggle source
Handle H2 specific clobs as strings.
Calls superclass method
Sequel::JDBC::Dataset#convert_type_proc
# File lib/sequel/adapters/jdbc/h2.rb, line 205 def convert_type_proc(v) if v.is_a?(Java::OrgH2Jdbc::JdbcClob) H2_CLOB_METHOD else super end end
literal_blob_append(sql, v)
click to toggle source
H2 expects hexadecimal strings for blob values
# File lib/sequel/adapters/jdbc/h2.rb, line 214 def literal_blob_append(sql, v) sql << APOS << v.unpack(HSTAR).first << APOS 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 219 def literal_sqltime(v) v.strftime(TIME_FORMAT) end
select_clause_methods()
click to toggle source
# File lib/sequel/adapters/jdbc/h2.rb, line 223 def select_clause_methods SELECT_CLAUSE_METHODS end