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 =
'(1 = 1)'.freeze
- BOOL_FALSE =
'(1 = 0)'.freeze
- SELECT_CLAUSE_METHODS =
clause_methods(:select, %w'select distinct columns from join where group having compounds order limit lock')
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::BACKSLASH_RE, 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_ALL, 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_VALUES, Dataset::DELETE, Dataset::DELETE_CLAUSE_METHODS, Dataset::DESC, Dataset::DISTINCT, Dataset::DOT, Dataset::DOUBLE_APOS, Dataset::DOUBLE_QUOTE, Dataset::EQUAL, 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::QUAD_BACKSLASH, Dataset::QUALIFY_KEYS, Dataset::QUERY_METHODS, Dataset::QUESTION_MARK, Dataset::QUESTION_MARK_RE, Dataset::QUOTE, Dataset::QUOTE_RE, Dataset::RETURNING, Dataset::SELECT, Dataset::SET, Dataset::SPACE, 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::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 emulate it by using an equality statement for all of the 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_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, #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_append, #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_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, #negative_boolean_constant_sql_append, #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?, #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_append, #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_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_append, #window_sql_append, #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::Dataset
Instance Method Details
#case_expression_sql_append(sql, ce) ⇒ Object
Derby doesn’t support an expression between CASE and WHEN, so emulate it by using an equality statement for all of the conditions.
128 129 130 131 132 133 134 135 |
# File 'lib/sequel/adapters/jdbc/derby.rb', line 128 def case_expression_sql_append(sql, ce) if ce.expression? e = ce.expression case_expression_sql_append(sql, ::Sequel::SQL::CaseExpression.new(ce.conditions.map{|c, r| [::Sequel::SQL::BooleanExpression.new(:'=', e, c), r]}, ce.default)) else super end 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.
140 141 142 143 144 145 146 147 148 |
# File 'lib/sequel/adapters/jdbc/derby.rb', line 140 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.
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/sequel/adapters/jdbc/derby.rb', line 151 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 :&, :|, :^, :<<, :>> 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_is_true? ⇒ Boolean
Derby does not support IS TRUE.
173 174 175 |
# File 'lib/sequel/adapters/jdbc/derby.rb', line 173 def supports_is_true? false end |
#supports_multiple_column_in? ⇒ Boolean
Derby does not support IN/NOT IN with multiple columns
178 179 180 |
# File 'lib/sequel/adapters/jdbc/derby.rb', line 178 def supports_multiple_column_in? false end |