Class Sequel::JDBC::H2::Dataset
In: lib/sequel/adapters/jdbc/h2.rb
Parent: JDBC::Dataset

Dataset class for H2 datasets accessed via JDBC.

Methods

Constants

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

Public Instance methods

Emulate the case insensitive LIKE operator and the bitwise operators.

[Source]

     # File lib/sequel/adapters/jdbc/h2.rb, line 155
155:         def complex_expression_sql_append(sql, op, args)
156:           case op
157:           when :ILIKE, "NOT ILIKE""NOT ILIKE"
158:             super(sql, (op == :ILIKE ? :LIKE : "NOT LIKE""NOT LIKE"), [SQL::PlaceholderLiteralString.new(ILIKE_PLACEHOLDER, [args.at(0)]), args.at(1)])
159:           when :&, :|, :^
160:             sql << complex_expression_arg_pairs(args){|a, b| literal(SQL::Function.new(BITWISE_METHOD_MAP[op], a, b))}
161:           when :<<
162:             sql << complex_expression_arg_pairs(args){|a, b| "(#{literal(a)} * POWER(2, #{literal(b)}))"}
163:           when :>>
164:             sql << complex_expression_arg_pairs(args){|a, b| "(#{literal(a)} / POWER(2, #{literal(b)}))"}
165:           when 'B~''B~'
166:             sql << BITCOMP_OPEN
167:             literal_append(sql, args.at(0))
168:             sql << BITCOMP_CLOSE
169:           else
170:             super
171:           end
172:         end

H2 requires SQL standard datetimes

[Source]

     # File lib/sequel/adapters/jdbc/h2.rb, line 175
175:         def requires_sql_standard_datetimes?
176:           true
177:         end

H2 doesn‘t support IS TRUE

[Source]

     # File lib/sequel/adapters/jdbc/h2.rb, line 180
180:         def supports_is_true?
181:           false
182:         end

H2 doesn‘t support JOIN USING

[Source]

     # File lib/sequel/adapters/jdbc/h2.rb, line 185
185:         def supports_join_using?
186:           false
187:         end

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

[Source]

     # File lib/sequel/adapters/jdbc/h2.rb, line 190
190:         def supports_multiple_column_in?
191:           false
192:         end

[Validate]