class Sequel::Mysql2::Dataset
Constants
- PreparedStatementMethods
- STREAMING_SUPPORTED
Public Instance Methods
fetch_rows(sql) { |h| ... }
click to toggle source
# File lib/sequel/adapters/mysql2.rb 235 def fetch_rows(sql) 236 execute(sql) do |r| 237 self.columns = r.fields.map!{|c| output_identifier(c.to_s)} 238 r.each(:cast_booleans=>convert_tinyint_to_bool?){|h| yield h} 239 end 240 self 241 end
paged_each(opts=OPTS, &block)
click to toggle source
Use streaming to implement paging if Mysql2
supports it and it hasn't been disabled.
Calls superclass method
Sequel::Dataset#paged_each
# File lib/sequel/adapters/mysql2.rb 245 def paged_each(opts=OPTS, &block) 246 if STREAMING_SUPPORTED && opts[:stream] != false 247 unless block_given? 248 return enum_for(:paged_each, opts) 249 end 250 stream.each(&block) 251 else 252 super 253 end 254 end
stream()
click to toggle source
Return a clone of the dataset that will stream rows when iterating over the result set, so it can handle large datasets that won't fit in memory (Requires mysql 0.3.12+ to have an effect).
# File lib/sequel/adapters/mysql2.rb 259 def stream 260 clone(:stream=>true) 261 end
Private Instance Methods
bound_variable_modules()
click to toggle source
# File lib/sequel/adapters/mysql2.rb 280 def bound_variable_modules 281 [PreparedStatementMethods] 282 end
convert_tinyint_to_bool?()
click to toggle source
Whether to cast tinyint(1) columns to integer instead of boolean. By default, uses the database's convert_tinyint_to_bool setting. Exists for compatibility with the mysql adapter.
# File lib/sequel/adapters/mysql2.rb 268 def convert_tinyint_to_bool? 269 @db.convert_tinyint_to_bool 270 end
execute(sql, opts=OPTS)
click to toggle source
Calls superclass method
Sequel::Dataset#execute
# File lib/sequel/adapters/mysql2.rb 272 def execute(sql, opts=OPTS) 273 opts = Hash[opts] 274 opts[:type] = :select 275 opts[:stream] = @opts[:stream] 276 super 277 end
literal_string_append(sql, v)
click to toggle source
Handle correct quoting of strings using ::Mysql2::Client#escape.
# File lib/sequel/adapters/mysql2.rb 290 def literal_string_append(sql, v) 291 sql << "'" << db.synchronize(@opts[:server]){|c| c.escape(v)} << "'" 292 end
prepared_statement_modules()
click to toggle source
# File lib/sequel/adapters/mysql2.rb 284 def prepared_statement_modules 285 [PreparedStatementMethods] 286 end