module Sequel::MySQL::MysqlMysql2::DatabaseMethods

Constants

MYSQL_DATABASE_DISCONNECT_ERRORS

Public Instance Methods

call_sproc(name, opts=OPTS, &block) click to toggle source

Support stored procedures on MySQL

# File lib/sequel/adapters/utils/mysql_mysql2.rb, line 26
def call_sproc(name, opts=OPTS, &block)
  args = opts[:args] || [] 
  execute("CALL #{name}#{args.empty? ? '()' : literal(args)}", opts.merge(:sproc=>false), &block)
end
execute(sql, opts=OPTS, &block) click to toggle source

Executes the given SQL using an available connection, yielding the connection if the block is given.

# File lib/sequel/adapters/utils/mysql_mysql2.rb, line 33
def execute(sql, opts=OPTS, &block)
  if opts[:sproc]
    call_sproc(sql, opts, &block)
  elsif sql.is_a?(Symbol) || sql.is_a?(Sequel::Dataset::ArgumentMapper)
    execute_prepared_statement(sql, opts, &block)
  else
    synchronize(opts[:server]){|conn| _execute(conn, sql, opts, &block)}
  end
end

Private Instance Methods

add_prepared_statements_cache(conn) click to toggle source
# File lib/sequel/adapters/utils/mysql_mysql2.rb, line 45
def add_prepared_statements_cache(conn)
  class << conn
    attr_accessor :prepared_statements
  end
  conn.prepared_statements = {}
end
database_specific_error_class(exception, opts) click to toggle source
Calls superclass method
# File lib/sequel/adapters/utils/mysql_mysql2.rb, line 52
def database_specific_error_class(exception, opts)
  case exception.errno
  when 1048
    NotNullConstraintViolation
  when 1062
    UniqueConstraintViolation
  when 1451, 1452, 1216, 1217
    ForeignKeyConstraintViolation
  when 4025
    CheckConstraintViolation
  when 1205
    DatabaseLockTimeout
  else
    super
  end
end