Class: Sequel::IBMDB::Dataset
- Includes:
- DB2::DatasetMethods
- Defined in:
- lib/sequel/adapters/ibmdb.rb
Defined Under Namespace
Modules: CallableStatementMethods, PreparedStatementMethods
Constant Summary
Constants included from DB2::DatasetMethods
DB2::DatasetMethods::BITWISE_METHOD_MAP, 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::FETCH_FIRST, DB2::DatasetMethods::FETCH_FIRST_ROW_ONLY, 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_RE, 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::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::OFFSET, Dataset::ON, Dataset::ON_PAREN, 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::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::SELECT_CLAUSE_METHODS, 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 collapse
-
#convert_smallint_to_bool ⇒ Object
Whether to convert smallint to boolean arguments for this dataset.
Attributes inherited from Dataset
#db, #identifier_input_method, #identifier_output_method, #opts, #quote_identifiers, #row_proc
Instance Method Summary collapse
-
#call(type, bind_arguments = {}, *values, &block) ⇒ Object
Emulate support of bind arguments in called statements.
-
#fetch_rows(sql) ⇒ Object
Fetch the rows from the database and yield plain hashes.
-
#prepare(type, name = nil, *values) ⇒ Object
Store the given type of prepared statement in the associated database with the given name.
Methods included from DB2::DatasetMethods
#cast_sql_append, #complex_expression_sql_append, #supports_group_cube?, #supports_group_rollup?, #supports_is_true?, #supports_multiple_column_in?, #supports_select_all_and_column?, #supports_timestamp_usecs?, #supports_where_true?, #supports_window_functions?
Methods included from EmulateOffsetWithRowNumber
#complex_expression_sql_append, #select_sql
Methods inherited from Dataset
#<<, #==, #[], #[]=, #add_graph_aliases, #aliased_expression_sql_append, #all, #and, #array_sql_append, #avg, #bind, #boolean_constant_sql_append, #case_expression_sql_append, #cast_sql_append, clause_methods, #clone, #column_all_sql_append, #columns, #columns!, #complex_expression_sql_append, #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, #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, #or, #order, #order_append, #order_by, #order_more, #order_prepend, #ordered_expression_sql_append, #paginate, #placeholder_literal_string_sql_append, #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_group_cube?, #supports_group_rollup?, #supports_insert_select?, #supports_intersect_except?, #supports_intersect_except_all?, #supports_is_true?, #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_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 Attribute Details
#convert_smallint_to_bool ⇒ Object
Whether to convert smallint to boolean arguments for this dataset. Defaults to the IBMDB module setting.
397 398 399 |
# File 'lib/sequel/adapters/ibmdb.rb', line 397 def convert_smallint_to_bool defined?(@convert_smallint_to_bool) ? @convert_smallint_to_bool : (@convert_smallint_to_bool = IBMDB.convert_smallint_to_bool) end |
Instance Method Details
#call(type, bind_arguments = {}, *values, &block) ⇒ Object
Emulate support of bind arguments in called statements.
389 390 391 392 393 |
# File 'lib/sequel/adapters/ibmdb.rb', line 389 def call(type, bind_arguments={}, *values, &block) ps = to_prepared_statement(type, values) ps.extend(CallableStatementMethods) ps.call(bind_arguments, &block) end |
#fetch_rows(sql) ⇒ Object
Fetch the rows from the database and yield plain hashes.
405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 |
# File 'lib/sequel/adapters/ibmdb.rb', line 405 def fetch_rows(sql) execute(sql) do |stmt| offset = @opts[:offset] 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(k).downcase.to_sym # decide if it is a smallint from precision type = :boolean if type ==:int && convert && stmt.field_precision(k) < 8 columns << [key, cps[type]] end cols = columns.map{|c| c.at(0)} cols.delete(row_number_column) if offset @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 row.delete(row_number_column) if offset yield row end end self end |
#prepare(type, name = nil, *values) ⇒ Object
Store the given type of prepared statement in the associated database with the given name.
437 438 439 440 441 442 443 444 445 |
# File 'lib/sequel/adapters/ibmdb.rb', line 437 def prepare(type, name=nil, *values) ps = to_prepared_statement(type, values) ps.extend(PreparedStatementMethods) if name ps.prepared_statement_name = name db.prepared_statements[name] = ps end ps end |