Class: Sequel::JDBC::HSQLDB::Dataset
- 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
Instance Method Summary collapse
-
#complex_expression_sql_append(sql, op, args) ⇒ Object
Handle HSQLDB specific case insensitive LIKE and bitwise operator support.
-
#recursive_cte_requires_column_aliases? ⇒ Boolean
HSQLDB requires recursive CTEs to have column aliases.
-
#requires_sql_standard_datetimes? ⇒ Boolean
HSQLDB requires SQL standard datetimes in some places.
-
#supports_cte?(type = :select) ⇒ Boolean
HSQLDB does support common table expressions, but the support is broken.
-
#supports_is_true? ⇒ Boolean
HSQLDB does not support IS TRUE.
-
#supports_lateral_subqueries? ⇒ Boolean
HSQLDB supports lateral subqueries.
-
#supports_merge? ⇒ Boolean
HSQLDB 2.3.4+ supports MERGE.
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
Methods included from SQL::NumericMethods
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
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.
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.
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.
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.
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.
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.
186 187 188 |
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 186 def supports_merge? db.db_version >= 20304 end |