Class: Sequel::JDBC::Derby::Dataset
- Inherits:
-
Sequel::JDBC::Dataset
- Object
- Dataset
- Sequel::JDBC::Dataset
- Sequel::JDBC::Derby::Dataset
- Defined in:
- lib/sequel/adapters/jdbc/derby.rb
Overview
Dataset class for Derby datasets accessed via JDBC.
Constant Summary collapse
- PAREN_CLOSE =
Dataset::PAREN_CLOSE
- PAREN_OPEN =
Dataset::PAREN_OPEN
- OFFSET =
Dataset::OFFSET
- CAST_STRING_OPEN =
"RTRIM(".freeze
- BITCOMP_OPEN =
"((0 - ".freeze
- BITCOMP_CLOSE =
") - 1)".freeze
- BLOB_OPEN =
"CAST(X'".freeze
- BLOB_CLOSE =
"' AS BLOB)".freeze
- HSTAR =
"H*".freeze
- TIME_FORMAT =
"'%H:%M:%S'".freeze
- DEFAULT_FROM =
" FROM sysibm.sysdummy1".freeze
- ROWS =
" ROWS".freeze
- FETCH_FIRST =
" FETCH FIRST ".freeze
- ROWS_ONLY =
" ROWS ONLY".freeze
- BOOL_TRUE_OLD =
'(1 = 1)'.freeze
- BOOL_FALSE_OLD =
'(1 = 0)'.freeze
- BOOL_TRUE =
'TRUE'.freeze
- BOOL_FALSE =
'FALSE'.freeze
- SELECT_CLAUSE_METHODS =
clause_methods(:select, %w'select distinct columns from join where group having compounds order limit lock')
- EMULATED_FUNCTION_MAP =
{:char_length=>'length'.freeze}
Constants inherited from Dataset
Dataset::ACTION_METHODS, Dataset::ALL, Dataset::AND_SEPARATOR, Dataset::APOS, Dataset::APOS_RE, Dataset::ARG_BLOCK_ERROR_MSG, Dataset::ARRAY_ACCESS_ERROR_MSG, Dataset::ARRAY_EMPTY, Dataset::AS, Dataset::ASC, 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::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::DEFAULT, Dataset::DEFAULT_VALUES, Dataset::DELETE, Dataset::DELETE_CLAUSE_METHODS, Dataset::DESC, Dataset::DISTINCT, Dataset::DOT, Dataset::DOUBLE_APOS, Dataset::DOUBLE_QUOTE, Dataset::EQUAL, Dataset::EXISTS, Dataset::EXTENSIONS, Dataset::EXTRACT, Dataset::FORMAT_DATE, Dataset::FORMAT_DATE_STANDARD, Dataset::FORMAT_OFFSET, Dataset::FORMAT_TIMESTAMP_RE, Dataset::FORMAT_TIMESTAMP_USEC, Dataset::FORMAT_USEC, Dataset::FOR_UPDATE, Dataset::FRAME_ALL, Dataset::FRAME_ROWS, Dataset::FROM, Dataset::FUNCTION_EMPTY, Dataset::GROUP_BY, Dataset::HAVING, Dataset::IMPORT_ERROR_MSG, Dataset::INSERT, Dataset::INSERT_CLAUSE_METHODS, Dataset::INTO, Dataset::IS_LITERALS, Dataset::IS_OPERATORS, Dataset::JOIN_METHODS, 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::ON, Dataset::ON_PAREN, Dataset::ORDER_BY, Dataset::ORDER_BY_NS, Dataset::OVER, Dataset::PAREN_SPACE_OPEN, Dataset::PARTITION_BY, Dataset::PREPARED_ARG_PLACEHOLDER, Dataset::PRIVATE_APPEND_METHODS, Dataset::PUBLIC_APPEND_METHODS, 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::UPDATE, Dataset::UPDATE_CLAUSE_METHODS, Dataset::USING, Dataset::V190, Dataset::VALUES, Dataset::WHERE, Dataset::WILDCARD
Instance Attribute Summary
Attributes inherited from Sequel::JDBC::Dataset
Attributes inherited from Dataset
#db, #identifier_input_method, #identifier_output_method, #opts, #quote_identifiers, #row_proc
Instance Method Summary collapse
-
#case_expression_sql_append(sql, ce) ⇒ Object
Derby doesn’t support an expression between CASE and WHEN, so remove conditions.
-
#cast_sql_append(sql, expr, type) ⇒ Object
If the type is String, trim the extra spaces since CHAR is used instead of varchar.
-
#complex_expression_sql_append(sql, op, args) ⇒ Object
Handle Derby specific LIKE, extract, and some bitwise compliment support.
-
#supports_group_rollup? ⇒ Boolean
Derby supports GROUP BY ROLLUP (but not CUBE).
-
#supports_is_true? ⇒ Boolean
Derby does not support IS TRUE.
-
#supports_multiple_column_in? ⇒ Boolean
Derby does not support IN/NOT IN with multiple columns.
Methods inherited from Sequel::JDBC::Dataset
Methods inherited from Dataset
#<<, #==, #[], #[]=, #add_graph_aliases, #aliased_expression_sql_append, #all, #and, #array_sql_append, #avg, #bind, #boolean_constant_sql_append, #call, clause_methods, #clone, #column_all_sql_append, #columns, #columns!, #constant_sql_append, #count, def_append_methods, #def_mutation_method, def_mutation_method, #delayed_evaluation_sql_append, #delete, #delete_sql, #distinct, #each, #each_page, #each_server, #empty?, #emulated_function_sql_append, #eql?, #except, #exclude, #exclude_having, #exclude_where, #exists, #extension, #extension!, #fetch_rows, #filter, #first, #first_source, #first_source_alias, #first_source_table, #for_update, #from, #from_self, #function_sql_append, #get, #graph, #grep, #group, #group_and_count, #group_by, #group_cube, #group_rollup, #hash, #having, #import, #initialize, #insert, #insert_multiple, #insert_sql, #inspect, #intersect, #interval, introspect_all_columns, #invert, #join, #join_clause_sql_append, #join_on_clause_sql_append, #join_table, #join_using_clause_sql_append, #last, #limit, #literal_append, #lock_style, #map, #max, #min, #multi_insert, #multi_insert_sql, #naked, #naked!, #negative_boolean_constant_sql_append, #nullify, #nullify!, #or, #order, #order_append, #order_by, #order_more, #order_prepend, #ordered_expression_sql_append, #paginate, #placeholder_literal_string_sql_append, #prepare, #print, #provides_accurate_rows_matched?, #qualified_identifier_sql_append, #qualify, #qualify_to, #qualify_to_first_source, #query, #quote_identifier_append, #quote_identifiers?, #quote_schema_table_append, #quoted_identifier_append, #range, #recursive_cte_requires_column_aliases?, register_extension, #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_hash_groups, #select_map, #select_more, #select_order_map, #select_remove, #select_sql, #server, #set, #set_defaults, #set_graph_aliases, #set_overrides, #single_record, #single_value, #split_alias, #split_qualifiers, #sql, #subscript_sql_append, #sum, #supports_cte?, #supports_cte_in_subqueries?, #supports_distinct_on?, #supports_group_cube?, #supports_insert_select?, #supports_intersect_except?, #supports_intersect_except_all?, #supports_join_using?, #supports_modifying_joins?, #supports_ordered_distinct_on?, #supports_regexp?, #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, #to_hash_groups, #truncate, #truncate_sql, #unbind, #unfiltered, #ungraphed, #ungrouped, #union, #unlimited, #unordered, #unused_table_alias, #update, #update_sql, #where, #window_function_sql_append, #window_sql_append, #with, #with_recursive, #with_sql, #with_sql_delete
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
#case_expression_sql_append(sql, ce) ⇒ Object
Derby doesn’t support an expression between CASE and WHEN, so remove conditions.
184 185 186 |
# File 'lib/sequel/adapters/jdbc/derby.rb', line 184 def case_expression_sql_append(sql, ce) super(sql, ce.with_merged_expression) end |
#cast_sql_append(sql, expr, type) ⇒ Object
If the type is String, trim the extra spaces since CHAR is used instead of varchar. This can cause problems if you are casting a char/varchar to a string and the ending whitespace is important.
191 192 193 194 195 196 197 198 199 |
# File 'lib/sequel/adapters/jdbc/derby.rb', line 191 def cast_sql_append(sql, expr, type) if type == String sql << CAST_STRING_OPEN super sql << PAREN_CLOSE else super end end |
#complex_expression_sql_append(sql, op, args) ⇒ Object
Handle Derby specific LIKE, extract, and some bitwise compliment support.
202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 |
# File 'lib/sequel/adapters/jdbc/derby.rb', line 202 def complex_expression_sql_append(sql, op, args) case op when :ILIKE super(sql, :LIKE, [SQL::Function.new(:upper, args.at(0)), SQL::Function.new(:upper, args.at(1))]) when :"NOT ILIKE" super(sql, :"NOT LIKE", [SQL::Function.new(:upper, args.at(0)), SQL::Function.new(:upper, args.at(1))]) when :% sql << complex_expression_arg_pairs(args){|a, b| "MOD(#{literal(a)}, #{literal(b)})"} when :&, :|, :^, :<<, :>> raise Error, "Derby doesn't support the #{op} operator" when :'B~' sql << BITCOMP_OPEN literal_append(sql, args.at(0)) sql << BITCOMP_CLOSE when :extract sql << args.at(0).to_s << PAREN_OPEN literal_append(sql, args.at(1)) sql << PAREN_CLOSE else super end end |
#supports_group_rollup? ⇒ Boolean
Derby supports GROUP BY ROLLUP (but not CUBE)
226 227 228 |
# File 'lib/sequel/adapters/jdbc/derby.rb', line 226 def supports_group_rollup? true end |
#supports_is_true? ⇒ Boolean
Derby does not support IS TRUE.
231 232 233 |
# File 'lib/sequel/adapters/jdbc/derby.rb', line 231 def supports_is_true? false end |
#supports_multiple_column_in? ⇒ Boolean
Derby does not support IN/NOT IN with multiple columns
236 237 238 |
# File 'lib/sequel/adapters/jdbc/derby.rb', line 236 def supports_multiple_column_in? false end |