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
- BITWISE_METHOD_MAP =
{:& =>:BITAND, :| => :BITOR, :^ => :BITXOR}
- BOOL_TRUE =
'TRUE'.freeze
- BOOL_FALSE =
'FALSE'.freeze
- SELECT_CLAUSE_METHODS =
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.
clause_methods(:select, %w'distinct columns from join where group having compounds order limit lock')
- SQL_WITH_RECURSIVE =
"WITH RECURSIVE ".freeze
Constants inherited from Dataset
Dataset::ACTION_METHODS, Dataset::AND_SEPARATOR, Dataset::ARG_BLOCK_ERROR_MSG, Dataset::ARRAY_ACCESS_ERROR_MSG, Dataset::COLUMN_CHANGE_OPTS, Dataset::COLUMN_REF_RE1, Dataset::COLUMN_REF_RE2, Dataset::COLUMN_REF_RE3, Dataset::COMMA_SEPARATOR, Dataset::CONDITIONED_JOIN_TYPES, Dataset::COUNT_FROM_SELF_OPTS, Dataset::COUNT_OF_ALL_AS_COUNT, Dataset::DATASET_ALIAS_BASE_NAME, Dataset::DELETE_CLAUSE_METHODS, Dataset::FOR_UPDATE, Dataset::IMPORT_ERROR_MSG, Dataset::INSERT_CLAUSE_METHODS, Dataset::IS_LITERALS, Dataset::IS_OPERATORS, Dataset::JOIN_METHODS, Dataset::MUTATION_METHODS, Dataset::NON_SQL_OPTIONS, Dataset::NOTIMPL_MSG, Dataset::NULL, Dataset::N_ARITY_OPERATORS, Dataset::PREPARED_ARG_PLACEHOLDER, Dataset::QUALIFY_KEYS, Dataset::QUERY_METHODS, Dataset::QUESTION_MARK, Dataset::SQL_WITH, Dataset::STANDARD_TIMESTAMP_FORMAT, Dataset::TIMESTAMP_FORMAT, Dataset::TWO_ARITY_OPERATORS, Dataset::UNCONDITIONED_JOIN_TYPES, Dataset::UPDATE_CLAUSE_METHODS, Dataset::WILDCARD
Instance Attribute Summary
Attributes inherited from Dataset
Attributes inherited from Dataset
#db, #identifier_input_method, #identifier_output_method, #opts, #quote_identifiers, #row_proc
Instance Method Summary collapse
-
#complex_expression_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.
-
#supports_is_true? ⇒ Boolean
HSQLDB does not support IS TRUE.
Methods inherited from Dataset
#fetch_rows, #initialize, #prepare
Methods inherited from Dataset
#<<, #==, #[], #[]=, #add_graph_aliases, #aliased_expression_sql, #all, #and, #array_sql, #avg, #bind, #boolean_constant_sql, #call, #case_expression_sql, #cast_sql, clause_methods, #clone, #column_all_sql, #columns, #columns!, #constant_sql, #count, def_mutation_method, #def_mutation_method, #delete, #delete_sql, #distinct, #each, #each_page, #each_server, #empty?, #eql?, #except, #exclude, #exclude_having, #exclude_where, #exists, #fetch_rows, #filter, #first, #first_source, #first_source_alias, #first_source_table, #for_update, #from, #from_self, #function_sql, #get, #graph, #grep, #group, #group_and_count, #group_by, #hash, #having, #import, #initialize, #insert, #insert_multiple, #insert_sql, #inspect, #intersect, #interval, introspect_all_columns, #invert, #join, #join_clause_sql, #join_on_clause_sql, #join_table, #join_using_clause_sql, #last, #limit, #literal, #lock_style, #map, #max, #min, #multi_insert, #multi_insert_sql, #naked, #negative_boolean_constant_sql, #or, #order, #order_append, #order_by, #order_more, #order_prepend, #ordered_expression_sql, #paginate, #placeholder_literal_string_sql, #prepare, #print, #provides_accurate_rows_matched?, #qualified_identifier_sql, #qualify, #qualify_to, #qualify_to_first_source, #query, #quote_identifier, #quote_identifiers?, #quote_schema_table, #quoted_identifier, #range, #requires_placeholder_type_specifiers?, #requires_sql_standard_datetimes?, #returning, #reverse, #reverse_order, #row_number_column, #schema_and_table, #select, #select_all, #select_append, #select_group, #select_hash, #select_map, #select_more, #select_order_map, #select_sql, #server, #set, #set_defaults, #set_graph_aliases, #set_overrides, #single_record, #single_value, #split_alias, #sql, #subscript_sql, #sum, #supports_cte?, #supports_cte_in_subqueries?, #supports_distinct_on?, #supports_insert_select?, #supports_intersect_except?, #supports_intersect_except_all?, #supports_join_using?, #supports_modifying_joins?, #supports_multiple_column_in?, #supports_ordered_distinct_on?, #supports_returning?, #supports_select_all_and_column?, #supports_timestamp_timezones?, #supports_timestamp_usecs?, #supports_where_true?, #supports_window_functions?, #to_csv, #to_dot, #to_hash, #truncate, #truncate_sql, #unbind, #unfiltered, #ungraphed, #ungrouped, #union, #unlimited, #unordered, #unused_table_alias, #update, #update_sql, #where, #window_function_sql, #window_sql, #with, #with_recursive, #with_sql
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::JDBC::Dataset
Instance Method Details
#complex_expression_sql(op, args) ⇒ Object
Handle HSQLDB specific case insensitive LIKE and bitwise operator support.
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 90 def complex_expression_sql(op, args) case op when :ILIKE super(:LIKE, [SQL::Function.new(:ucase, args.at(0)), SQL::Function.new(:ucase, args.at(1)) ]) when :"NOT ILIKE" super(:"NOT LIKE", [SQL::Function.new(:ucase, args.at(0)), SQL::Function.new(:ucase, args.at(1)) ]) when :&, :|, :^ op = BITWISE_METHOD_MAP[op] complex_expression_arg_pairs(args){|a, b| literal(SQL::Function.new(op, a, b))} when :<< complex_expression_arg_pairs(args){|a, b| "(#{literal(a)} * POWER(2, #{literal(b)}))"} when :>> complex_expression_arg_pairs(args){|a, b| "(#{literal(a)} / POWER(2, #{literal(b)}))"} when :'B~' "((0 - #{literal(args.at(0))}) - 1)" else super end end |
#recursive_cte_requires_column_aliases? ⇒ Boolean
HSQLDB requires recursive CTEs to have column aliases.
111 112 113 |
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 111 def recursive_cte_requires_column_aliases? true end |
#supports_is_true? ⇒ Boolean
HSQLDB does not support IS TRUE.
116 117 118 |
# File 'lib/sequel/adapters/jdbc/hsqldb.rb', line 116 def supports_is_true? false end |