Class: Sequel::JDBC::HSQLDB::Dataset

Inherits:
Dataset show all
Defined in:
lib/sequel/adapters/jdbc/hsqldb.rb

Constant Summary

Constants inherited from Dataset

Dataset::PreparedStatementMethods, Dataset::StoredProcedureMethods

Constants inherited from Dataset

Dataset::ACTION_METHODS, Dataset::BITWISE_METHOD_MAP, Dataset::COLUMNS_CLONE_OPTIONS, Dataset::COLUMN_CHANGE_OPTS, Dataset::CONDITIONED_JOIN_TYPES, Dataset::COUNT_FROM_SELF_OPTS, Dataset::COUNT_OF_ALL_AS_COUNT, Dataset::COUNT_SELECT, Dataset::DEFAULT, Dataset::DEFAULT_PREPARED_STATEMENT_MODULE_METHODS, Dataset::EMPTY_ARRAY, Dataset::EMPTY_SELECT, Dataset::EXISTS, Dataset::EXTENSIONS, Dataset::IS_LITERALS, Dataset::IS_OPERATORS, Dataset::JOIN_METHODS, Dataset::LIKE_OPERATORS, Dataset::NON_SQL_OPTIONS, Dataset::N_ARITY_OPERATORS, Dataset::OPTS, Dataset::PREPARED_ARG_PLACEHOLDER, Dataset::PREPARED_STATEMENT_MODULE_CODE, Dataset::QUALIFY_KEYS, Dataset::QUERY_METHODS, Dataset::REGEXP_OPERATORS, Dataset::TRUE_FREEZE, Dataset::TWO_ARITY_OPERATORS, Dataset::UNCONDITIONED_JOIN_TYPES, Dataset::WILDCARD

Instance Attribute Summary

Attributes inherited from Dataset

#db, #opts

Instance Method Summary collapse

Methods inherited from Dataset

#fetch_rows, #with_convert_types, #with_fetch_size

Methods inherited from Dataset

#<<, #==, #[], #add_graph_aliases, #aliased_expression_sql_append, #all, #array_sql_append, #as_hash, #avg, #bind, #boolean_constant_sql_append, #call, #case_expression_sql_append, #cast_sql_append, clause_methods, #clone, #column_all_sql_append, #columns, #columns!, #constant_sql_append, #count, #current_datetime, def_sql_method, #delayed_evaluation_sql_append, #delete, #distinct, #dup, #each, #each_server, #empty?, #eql?, #escape_like, #except, #exclude, #exclude_having, #exists, #extension, #filter, #first, #first!, #first_source, #first_source_alias, #first_source_table, #for_update, #freeze, #from, #from_self, #frozen?, #function_sql_append, #get, #graph, #grep, #group, #group_and_count, #group_append, #group_by, #group_cube, #group_rollup, #grouping_sets, #hash, #having, #import, #initialize, #insert, #insert_sql, #inspect, #intersect, #invert, #join, #join_clause_sql_append, #join_on_clause_sql_append, #join_table, #join_using_clause_sql_append, #joined_dataset?, #last, #lateral, #limit, #literal_append, #literal_date_or_time, #lock_style, #map, #max, #merge, #merge_delete, #merge_insert, #merge_sql, #merge_update, #merge_using, #min, #multi_insert, #multi_insert_sql, #naked, #negative_boolean_constant_sql_append, #nowait, #offset, #or, #order, #order_append, #order_by, #order_more, #order_prepend, #ordered_expression_sql_append, #paged_each, #placeholder_literal_string_sql_append, #placeholder_literalizer_class, #placeholder_literalizer_loader, #prepare, #provides_accurate_rows_matched?, #qualified_identifier_sql_append, #qualify, #quote_identifier_append, #quote_identifiers?, #quote_schema_table_append, #quoted_identifier_append, register_extension, #requires_placeholder_type_specifiers?, #returning, #reverse, #reverse_order, #row_number_column, #row_proc, #schema_and_table, #select, #select_all, #select_append, #select_group, #select_hash, #select_hash_groups, #select_map, #select_more, #select_order_map, #select_prepend, #server, #server?, #set_graph_aliases, #single_record, #single_record!, #single_value, #single_value!, #skip_limit_check, #skip_locked, #split_alias, #split_qualifiers, #sql, #subscript_sql_append, #sum, #supports_cte_in_subqueries?, #supports_deleting_joins?, #supports_derived_column_lists?, #supports_distinct_on?, #supports_group_cube?, #supports_group_rollup?, #supports_grouping_sets?, #supports_insert_select?, #supports_intersect_except?, #supports_intersect_except_all?, #supports_join_using?, #supports_limits_in_correlated_subqueries?, #supports_modifying_joins?, #supports_multiple_column_in?, #supports_nowait?, #supports_offsets_in_correlated_subqueries?, #supports_ordered_distinct_on?, #supports_placeholder_literalizer?, #supports_regexp?, #supports_replace?, #supports_returning?, #supports_select_all_and_column?, #supports_skip_locked?, #supports_timestamp_timezones?, #supports_timestamp_usecs?, #supports_updating_joins?, #supports_where_true?, #supports_window_clause?, #supports_window_function_frame_option?, #supports_window_functions?, #to_hash, #to_hash_groups, #truncate, #truncate_sql, #unfiltered, #ungraphed, #ungrouped, #union, #unlimited, #unordered, #unqualified_column_for, #unused_table_alias, #update, #update_sql, #where, #where_all, #where_each, #where_single_value, #window, #window_sql_append, #with, #with_extend, #with_quote_identifiers, #with_recursive, #with_row_proc, #with_sql, #with_sql_all, #with_sql_delete, #with_sql_each, #with_sql_first, #with_sql_insert, #with_sql_single_value

Methods included from SQL::StringMethods

#escaped_ilike, #escaped_like, #ilike, #like

Methods included from SQL::OrderMethods

#asc, #desc

Methods included from SQL::NumericMethods

#+, #coerce

Methods included from SQL::ComplexExpressionMethods

#extract, #sql_boolean, #sql_number, #sql_string

Methods included from SQL::CastMethods

#cast, #cast_numeric, #cast_string

Methods included from SQL::BooleanMethods

#~

Methods included from SQL::AliasMethods

#as

Constructor Details

This class inherits a constructor from Sequel::Dataset

Instance Method Details

#complex_expression_sql_append(sql, op, args) ⇒ Object

Handle HSQLDB specific case insensitive LIKE and bitwise operator support.



144
145
146
147
148
149
150
151
152
153
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 144

def complex_expression_sql_append(sql, op, args)
  case op
  when :ILIKE, :"NOT ILIKE"
    super(sql, (op == :ILIKE ? :LIKE : :"NOT LIKE"), args.map{|v| SQL::Function.new(:ucase, v)})
  when :&, :|, :^, :%, :<<, :>>, :'B~'
    complex_expression_emulate_append(sql, op, args)
  else
    super
  end
end

#recursive_cte_requires_column_aliases?Boolean

HSQLDB requires recursive CTEs to have column aliases.

Returns:

  • (Boolean)


156
157
158
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 156

def recursive_cte_requires_column_aliases?
  true
end

#requires_sql_standard_datetimes?Boolean

HSQLDB requires SQL standard datetimes in some places.

Returns:

  • (Boolean)


161
162
163
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 161

def requires_sql_standard_datetimes?
  true
end

#supports_cte?(type = :select) ⇒ Boolean

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.

Returns:

  • (Boolean)


170
171
172
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 170

def supports_cte?(type=:select)
  false
end

#supports_is_true?Boolean

HSQLDB does not support IS TRUE.

Returns:

  • (Boolean)


175
176
177
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 175

def supports_is_true?
  false
end

#supports_lateral_subqueries?Boolean

HSQLDB supports lateral subqueries.

Returns:

  • (Boolean)


180
181
182
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 180

def supports_lateral_subqueries?
  true
end

#supports_merge?Boolean

HSQLDB 2.3.4+ supports MERGE. Older versions also support MERGE, but not all features that are in Sequel’s tests.

Returns:

  • (Boolean)


186
187
188
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 186

def supports_merge?
  db.db_version >= 20304
end