Class: Sequel::IBMDB::Dataset

Inherits:
Dataset show all
Includes:
DB2::DatasetMethods
Defined in:
lib/sequel/adapters/ibmdb.rb

Defined Under Namespace

Modules: CallableStatementMethods

Constant Summary collapse

PreparedStatementMethods =
prepared_statements_module(:prepare_bind, Sequel::Dataset::UnnumberedArgumentMapper)

Constants included from DB2::DatasetMethods

DB2::DatasetMethods::BITWISE_METHOD_MAP, DB2::DatasetMethods::BLOB_CLOSE, DB2::DatasetMethods::BLOB_OPEN, DB2::DatasetMethods::BOOL_FALSE, DB2::DatasetMethods::BOOL_TRUE, DB2::DatasetMethods::CAST_STRING_CLOSE, DB2::DatasetMethods::CAST_STRING_OPEN, DB2::DatasetMethods::EMPTY_FROM_TABLE, DB2::DatasetMethods::EMULATED_FUNCTION_MAP, DB2::DatasetMethods::FETCH_FIRST, DB2::DatasetMethods::FETCH_FIRST_ROW_ONLY, DB2::DatasetMethods::HSTAR, DB2::DatasetMethods::PAREN_CLOSE, DB2::DatasetMethods::PAREN_OPEN, DB2::DatasetMethods::ROWS_ONLY

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, Dataset::BITCOMP_CLOSE, Dataset::BITCOMP_OPEN, Dataset::BITWISE_METHOD_MAP, Dataset::BOOL_FALSE, Dataset::BOOL_TRUE, 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::COLUMNS_CLONE_OPTIONS, 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::TRUE_FREEZE, 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

#db, #opts

Instance Method Summary collapse

Methods included from DB2::DatasetMethods

#cast_sql_append, #complex_expression_sql_append, #quote_identifiers?, #supports_cte?, #supports_group_cube?, #supports_group_rollup?, #supports_grouping_sets?, #supports_is_true?, #supports_lateral_subqueries?, #supports_multiple_column_in?, #supports_select_all_and_column?, #supports_timestamp_usecs?, #supports_where_true?, #supports_window_functions?

Methods included from EmulateOffsetWithRowNumber

#empty?, #select_sql, #supports_offsets_in_correlated_subqueries?

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, #columns!, #complex_expression_sql_append, #constant_sql_append, #count, #current_datetime, def_deprecated_opts_setter, 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, #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, #recursive_cte_requires_column_aliases?, register_extension, #requires_placeholder_type_specifiers?, #requires_sql_standard_datetimes?, #returning, #reverse, #reverse_order, #row_number_column, #row_proc, #row_proc=, #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?, #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_is_true?, #supports_join_using?, #supports_lateral_subqueries?, #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_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 Metaprogramming

#meta_def

Methods included from SQL::StringMethods

#ilike, #like

Methods included from SQL::OrderMethods

#asc, #desc

Methods included from SQL::NumericMethods

#+, #coerce

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

#as

Constructor Details

This class inherits a constructor from Sequel::Dataset

Instance Method Details

#convert_smallint_to_boolObject

Whether to convert smallint to boolean arguments for this dataset. Defaults to the IBMDB module setting.



382
383
384
# File 'lib/sequel/adapters/ibmdb.rb', line 382

def convert_smallint_to_bool
  opts.has_key?(:convert_smallint_to_bool) ? opts[:convert_smallint_to_bool] : IBMDB.convert_smallint_to_bool
end

#convert_smallint_to_bool=(v) ⇒ Object

Override the default IBMDB.convert_smallint_to_bool setting for this dataset.



376
377
378
# File 'lib/sequel/adapters/ibmdb.rb', line 376

def convert_smallint_to_bool=(v)
  @opts[:convert_smallint_to_bool] = v
end

#fetch_rows(sql) ⇒ Object

Fetch the rows from the database and yield plain hashes.



392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
# File 'lib/sequel/adapters/ibmdb.rb', line 392

def fetch_rows(sql)
  execute(sql) do |stmt|
    columns = []
    convert = convert_smallint_to_bool
    cps = db.conversion_procs
    stmt.num_fields.times do |i|
      k = stmt.field_name i
      key = output_identifier(k)
      type = stmt.field_type(i).downcase.to_sym
      # decide if it is a smallint from precision
      type = :boolean  if type == :int && convert && stmt.field_precision(i) < 8
      type = :blob if type == :clob && Sequel::DB2.use_clob_as_blob
      columns << [key, cps[type]]
    end
    cols = columns.map{|c| c.at(0)}
    self.columns = cols

    while res = stmt.fetch_array
      row = {}
      res.zip(columns).each do |v, (k, pr)|
        row[k] = ((pr ? pr.call(v) : v) if v)
      end
      yield row
    end
  end
  self
end

#with_convert_smallint_to_bool(v) ⇒ Object

Return a cloned dataset with the convert_smallint_to_bool option set.



387
388
389
# File 'lib/sequel/adapters/ibmdb.rb', line 387

def with_convert_smallint_to_bool(v)
  clone(:convert_smallint_to_bool=>v)
end