| Class | Sequel::IBMDB::Dataset |
| In: |
lib/sequel/adapters/ibmdb.rb
|
| Parent: | Sequel::Dataset |
| PreparedStatementMethods | = | prepared_statements_module(:prepare_bind, Sequel::Dataset::UnnumberedArgumentMapper) |
Whether to convert smallint to boolean arguments for this dataset. Defaults to the Database setting.
# File lib/sequel/adapters/ibmdb.rb, line 374
374: def convert_smallint_to_bool
375: opts.has_key?(:convert_smallint_to_bool) ? opts[:convert_smallint_to_bool] : db.convert_smallint_to_bool
376: end
# File lib/sequel/adapters/ibmdb.rb, line 383
383: def fetch_rows(sql)
384: execute(sql) do |stmt|
385: columns = []
386: convert = convert_smallint_to_bool
387: cps = db.conversion_procs
388: stmt.num_fields.times do |i|
389: k = stmt.field_name i
390: key = output_identifier(k)
391: type = stmt.field_type(i).downcase.to_sym
392: # decide if it is a smallint from precision
393: type = :boolean if type == :int && convert && stmt.field_precision(i) < 8
394: type = :blob if type == :clob && db.use_clob_as_blob
395: columns << [key, cps[type]]
396: end
397: cols = columns.map{|c| c[0]}
398: self.columns = cols
399:
400: while res = stmt.fetch_array
401: row = {}
402: res.zip(columns).each do |v, (k, pr)|
403: row[k] = ((pr ? pr.call(v) : v) if v)
404: end
405: yield row
406: end
407: end
408: self
409: end
Return a cloned dataset with the convert_smallint_to_bool option set.
# File lib/sequel/adapters/ibmdb.rb, line 379
379: def with_convert_smallint_to_bool(v)
380: clone(:convert_smallint_to_bool=>v)
381: end