Class: Sequel::JDBC::HSQLDB::Dataset
- Defined in:
- lib/sequel/adapters/jdbc/hsqldb.rb
Overview
Dataset class for HSQLDB datasets accessed via JDBC.
Constant Summary collapse
- BOOL_TRUE =
'TRUE'.freeze
- BOOL_FALSE =
'FALSE'.freeze
- SQL_WITH_RECURSIVE =
"WITH RECURSIVE ".freeze
- APOS =
Dataset::APOS
- HSTAR =
"H*".freeze
- BLOB_OPEN =
"X'".freeze
- DEFAULT_FROM =
" FROM (VALUES (0))".freeze
- TIME_FORMAT =
"'%H:%M:%S'".freeze
Constants inherited from Dataset
Dataset::PreparedStatementMethods, Dataset::StoredProcedureMethods
Constants inherited from Dataset
Dataset::ACTION_METHODS, Dataset::ALL, Dataset::AND_SEPARATOR, Dataset::APOS_RE, Dataset::ARG_BLOCK_ERROR_MSG, Dataset::ARRAY_ACCESS_ERROR_MSG, Dataset::ARRAY_EMPTY, Dataset::AS, Dataset::ASC, Dataset::BACKSLASH, Dataset::BITCOMP_CLOSE, Dataset::BITCOMP_OPEN, Dataset::BITWISE_METHOD_MAP, Dataset::BRACKET_CLOSE, Dataset::BRACKET_OPEN, Dataset::CASE_ELSE, Dataset::CASE_END, Dataset::CASE_OPEN, Dataset::CASE_THEN, Dataset::CASE_WHEN, Dataset::CAST_OPEN, Dataset::COLON, Dataset::COLUMN_CHANGE_OPTS, Dataset::COLUMN_REF_RE1, Dataset::COLUMN_REF_RE2, Dataset::COLUMN_REF_RE3, Dataset::COMMA, Dataset::COMMA_SEPARATOR, Dataset::CONDITIONED_JOIN_TYPES, Dataset::CONDITION_FALSE, Dataset::CONDITION_TRUE, Dataset::COUNT_FROM_SELF_OPTS, Dataset::COUNT_OF_ALL_AS_COUNT, Dataset::DATASET_ALIAS_BASE_NAME, Dataset::DATETIME_SECFRACTION_ARG, Dataset::DEFAULT, Dataset::DEFAULT_PREPARED_STATEMENT_MODULE_METHODS, Dataset::DEFAULT_VALUES, Dataset::DELETE, Dataset::DESC, Dataset::DISTINCT, Dataset::DOT, Dataset::DOUBLE_APOS, Dataset::DOUBLE_QUOTE, Dataset::EMPTY_PARENS, Dataset::EMULATED_FUNCTION_MAP, Dataset::EQUAL, Dataset::ESCAPE, Dataset::EXISTS, Dataset::EXTENSIONS, Dataset::EXTRACT, Dataset::FILTER, Dataset::FORMAT_DATE, Dataset::FORMAT_DATE_STANDARD, Dataset::FORMAT_OFFSET, Dataset::FORMAT_TIMESTAMP_RE, Dataset::FORMAT_USEC, Dataset::FOR_UPDATE, Dataset::FRAME_ALL, Dataset::FRAME_ROWS, Dataset::FROM, Dataset::FUNCTION_DISTINCT, Dataset::GROUP_BY, Dataset::HAVING, Dataset::IMPORT_ERROR_MSG, Dataset::INSERT, Dataset::INTO, Dataset::IS_LITERALS, Dataset::IS_OPERATORS, Dataset::JOIN_METHODS, Dataset::LATERAL, Dataset::LIKE_OPERATORS, Dataset::LIMIT, Dataset::MUTATION_METHODS, Dataset::NON_SQL_OPTIONS, Dataset::NOTIMPL_MSG, Dataset::NOT_SPACE, Dataset::NULL, Dataset::NULLS_FIRST, Dataset::NULLS_LAST, Dataset::N_ARITY_OPERATORS, Dataset::OFFSET, Dataset::ON, Dataset::ON_PAREN, Dataset::OPTS, Dataset::ORDER_BY, Dataset::ORDER_BY_NS, Dataset::OVER, Dataset::PAREN_CLOSE, Dataset::PAREN_OPEN, Dataset::PAREN_SPACE_OPEN, Dataset::PARTITION_BY, Dataset::PREPARED_ARG_PLACEHOLDER, Dataset::PREPARED_STATEMENT_MODULE_CODE, Dataset::QUALIFY_KEYS, Dataset::QUERY_METHODS, Dataset::QUESTION_MARK, Dataset::QUESTION_MARK_RE, Dataset::QUOTE, Dataset::QUOTE_RE, Dataset::REGEXP_OPERATORS, Dataset::RETURNING, Dataset::SELECT, Dataset::SET, Dataset::SPACE, Dataset::SPACE_WITH, Dataset::SQL_WITH, Dataset::STANDARD_TIMESTAMP_FORMAT, Dataset::TILDE, Dataset::TIMESTAMP_FORMAT, Dataset::TWO_ARITY_OPERATORS, Dataset::UNCONDITIONED_JOIN_TYPES, Dataset::UNDERSCORE, Dataset::UNION_ALL_SELECT, Dataset::UPDATE, Dataset::USING, Dataset::VALUES, Dataset::WHERE, Dataset::WILDCARD, Dataset::WITHIN_GROUP, Dataset::WITH_ORDINALITY
Instance Attribute Summary
Attributes inherited from Dataset
Attributes inherited from Dataset
#columns, #db, #opts, #row_proc
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.
Methods inherited from Dataset
#fetch_rows, #prepare, #with_fetch_size
Methods inherited from Dataset
#<<, #==, #[], #add_graph_aliases, #aliased_expression_sql_append, #all, #and, #array_sql_append, #avg, #bind, #boolean_constant_sql_append, #call, #case_expression_sql_append, #cast_sql_append, clause_methods, #clone, #column_all_sql_append, #columns!, #constant_sql_append, #count, #current_datetime, def_mutation_method, def_sql_method, #delayed_evaluation_sql_append, #delete, #distinct, #dup, #each, #each_server, #empty?, #eql?, #escape_like, #except, #exclude, #exclude_having, #exclude_where, #exists, #extension, #extension!, #filter, #first, #first!, #first_source, #first_source_alias, #first_source_table, #for_update, #freeze, #from, #from_self, #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, #identifier_input_method, #identifier_input_method=, #identifier_output_method, #identifier_output_method=, #import, #initialize, #insert, #insert_sql, #inspect, #intersect, #interval, #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, #lock_style, #map, #max, #min, #multi_insert, #multi_insert_sql, #naked, #naked!, #negative_boolean_constant_sql_append, #offset, #or, #order, #order_append, #order_by, #order_more, #order_prepend, #ordered_expression_sql_append, #paged_each, #placeholder_literal_string_sql_append, #prepare, #provides_accurate_rows_matched?, #qualified_identifier_sql_append, #qualify, #quote_identifier_append, #quote_identifiers=, #quote_identifiers?, #quote_schema_table_append, #quoted_identifier_append, #range, register_extension, #requires_placeholder_type_specifiers?, #returning, #reverse, #reverse_order, #row_number_column, #schema_and_table, #select, #select_all, #select_append, #select_group, #select_hash, #select_hash_groups, #select_map, #select_more, #select_order_map, #server, #server?, #set_graph_aliases, #single_record, #single_record!, #single_value, #single_value!, #skip_locked, #split_alias, #split_qualifiers, #sql, #subscript_sql_append, #sum, #supports_cte_in_subqueries?, #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_offsets_in_correlated_subqueries?, #supports_ordered_distinct_on?, #supports_regexp?, #supports_replace?, #supports_returning?, #supports_select_all_and_column?, #supports_skip_locked?, #supports_timestamp_timezones?, #supports_timestamp_usecs?, #supports_where_true?, #supports_window_functions?, #to_hash, #to_hash_groups, #truncate, #truncate_sql, #unbind, #unfiltered, #ungraphed, #ungrouped, #union, #unlimited, #unordered, #unqualified_column_for, #unused_table_alias, #update, #update_sql, #where, #window_sql_append, #with, #with_recursive, #with_sql, #with_sql_all, #with_sql_delete, #with_sql_each, #with_sql_first, #with_sql_insert, #with_sql_single_value
Methods included from Metaprogramming
Methods included from SQL::StringMethods
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.
155 156 157 158 159 160 161 162 163 164 |
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 155 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.
167 168 169 |
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 167 def recursive_cte_requires_column_aliases? true end |
#requires_sql_standard_datetimes? ⇒ Boolean
HSQLDB requires SQL standard datetimes in some places.
172 173 174 |
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 172 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.
181 182 183 |
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 181 def supports_cte?(type=:select) false end |
#supports_is_true? ⇒ Boolean
HSQLDB does not support IS TRUE.
186 187 188 |
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 186 def supports_is_true? false end |
#supports_lateral_subqueries? ⇒ Boolean
HSQLDB supports lateral subqueries.
191 192 193 |
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 191 def supports_lateral_subqueries? true end |