class Sequel::JDBC::HSQLDB::Dataset
Public Instance Methods
Source
# File lib/sequel/adapters/jdbc/hsqldb.rb 144 def complex_expression_sql_append(sql, op, args) 145 case op 146 when :ILIKE, :"NOT ILIKE" 147 super(sql, (op == :ILIKE ? :LIKE : :"NOT LIKE"), args.map{|v| SQL::Function.new(:ucase, v)}) 148 when :&, :|, :^, :%, :<<, :>>, :'B~' 149 complex_expression_emulate_append(sql, op, args) 150 else 151 super 152 end 153 end
Handle HSQLDB
specific case insensitive LIKE and bitwise operator support.
Sequel::Dataset#complex_expression_sql_append
Source
# File lib/sequel/adapters/jdbc/hsqldb.rb 156 def recursive_cte_requires_column_aliases? 157 true 158 end
HSQLDB
requires recursive CTEs to have column aliases.
Source
Source
# File lib/sequel/adapters/jdbc/hsqldb.rb 170 def supports_cte?(type=:select) 171 false 172 end
HSQLDB
does support common table expressions, but the support is broken. CTEs operate more like temprorary tables or views, lasting longer than the duration of the expression. CTEs in earlier queries might take precedence over CTEs with the same name in later queries. Also, if any CTE is recursive, all CTEs must be recursive. If you want to use CTEs with HSQLDB
, you’ll have to manually modify the dataset to allow it.
Source
# File lib/sequel/adapters/jdbc/hsqldb.rb 175 def supports_is_true? 176 false 177 end
HSQLDB
does not support IS TRUE.
Source
# File lib/sequel/adapters/jdbc/hsqldb.rb 180 def supports_lateral_subqueries? 181 true 182 end
HSQLDB
supports lateral subqueries.
Source
# File lib/sequel/adapters/jdbc/hsqldb.rb 186 def supports_merge? 187 db.db_version >= 20304 188 end
HSQLDB
2.3.4+ supports MERGE. Older versions also support MERGE, but not all features that are in Sequel’s tests.
Private Instance Methods
Source
# File lib/sequel/adapters/jdbc/hsqldb.rb 192 def empty_from_sql 193 " FROM (VALUES (0))" 194 end
Source
# File lib/sequel/adapters/jdbc/hsqldb.rb 197 def literal_blob_append(sql, v) 198 sql << "X'" << v.unpack("H*").first << "'" 199 end
Use string in hex format for blob data.
Source
# File lib/sequel/adapters/jdbc/hsqldb.rb 202 def literal_false 203 'FALSE' 204 end
HSQLDB
uses FALSE for false values.
Source
# File lib/sequel/adapters/jdbc/hsqldb.rb 207 def literal_sqltime(v) 208 v.strftime("'%H:%M:%S'") 209 end
HSQLDB
handles fractional seconds in timestamps, but not in times
Source
# File lib/sequel/adapters/jdbc/hsqldb.rb 212 def literal_true 213 'TRUE' 214 end
HSQLDB
uses TRUE for true values.
Source
# File lib/sequel/adapters/jdbc/hsqldb.rb 217 def multi_insert_sql_strategy 218 :values 219 end
HSQLDB
supports multiple rows in INSERT.
Source
# File lib/sequel/adapters/jdbc/hsqldb.rb 222 def select_with_sql_base 223 opts[:with].any?{|w| w[:recursive]} ? "WITH RECURSIVE " : super 224 end
Use WITH RECURSIVE instead of WITH if any of the CTEs is recursive
Sequel::Dataset#select_with_sql_base