class Rimportor::ActiveRecord::Adapter::Mysql2

Public Instance Methods

exec_in_pool() { |connection| ... } click to toggle source
# File lib/rimportor/active_record/adapter/mysql2.rb, line 14
def exec_in_pool
  ::Rimportor::Util::Connection.in_pool do |connection|
    yield(connection)
  end
end
exec_insert(import_statement) click to toggle source
# File lib/rimportor/active_record/adapter/mysql2.rb, line 24
def exec_insert(import_statement)
  insert_statement, value_statements = import_statement
  if statement_too_big? ("#{insert_statement}, #{value_statements.join(',')}")
    puts 'Statement too big'
  else
    exec_statement "#{insert_statement},#{value_statements.join(',')}"
  end
end
exec_statement(statement) click to toggle source
# File lib/rimportor/active_record/adapter/mysql2.rb, line 33
def exec_statement(statement)
  exec_in_pool { |connection| connection.execute statement }
end
max_allowed_packet() click to toggle source
# File lib/rimportor/active_record/adapter/mysql2.rb, line 6
def max_allowed_packet
  exec_in_pool do |connection|
    result = connection.execute("SHOW VARIABLES like 'max_allowed_packet';")
    val = result.respond_to?(:fetch_row) ? result.fetch_row[1] : result.first[1]
    val.to_i
  end
end
statement_too_big?(statement) click to toggle source
# File lib/rimportor/active_record/adapter/mysql2.rb, line 20
def statement_too_big?(statement)
  statement.size > max_allowed_packet
end