Class: Sequel::IBMDB::Dataset
- 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
Constants included from Dataset::ColumnsLimit1
Dataset::ColumnsLimit1::COLUMNS_CLONE_OPTIONS
Instance Method Summary collapse
-
#convert_smallint_to_bool ⇒ Object
Whether to convert smallint to boolean arguments for this dataset.
- #fetch_rows(sql) ⇒ Object
-
#with_convert_smallint_to_bool(v) ⇒ Object
Return a cloned dataset with the convert_smallint_to_bool option set.
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_merge?, #supports_multiple_column_in?, #supports_select_all_and_column?, #supports_where_true?, #supports_window_functions?
Methods included from Dataset::ColumnsLimit1
Methods included from EmulateOffsetWithRowNumber
#empty?, #select_sql, #supports_offsets_in_correlated_subqueries?
Instance Method Details
#convert_smallint_to_bool ⇒ Object
Whether to convert smallint to boolean arguments for this dataset. Defaults to the Database setting.
375 376 377 |
# File 'lib/sequel/adapters/ibmdb.rb', line 375 def convert_smallint_to_bool opts.has_key?(:convert_smallint_to_bool) ? opts[:convert_smallint_to_bool] : db.convert_smallint_to_bool end |
#fetch_rows(sql) ⇒ Object
384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 |
# File 'lib/sequel/adapters/ibmdb.rb', line 384 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 && db.use_clob_as_blob columns << [key, cps[type]] end cols = columns.map{|c| c[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.
380 381 382 |
# File 'lib/sequel/adapters/ibmdb.rb', line 380 def with_convert_smallint_to_bool(v) clone(:convert_smallint_to_bool=>v) end |