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
26 def call_sproc(name, opts=OPTS, &block)
27   args = opts[:args] || [] 
28   execute("CALL #{name}#{args.empty? ? '()' : literal(args)}", opts.merge(:sproc=>false), &block)
29 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
33 def execute(sql, opts=OPTS, &block)
34   if opts[:sproc]
35     call_sproc(sql, opts, &block)
36   elsif sql.is_a?(Symbol)
37     execute_prepared_statement(sql, opts, &block)
38   else
39     synchronize(opts[:server]){|conn| _execute(conn, sql, opts, &block)}
40   end
41 end

Private Instance Methods

add_prepared_statements_cache(conn) click to toggle source
   # File lib/sequel/adapters/utils/mysql_mysql2.rb
45 def add_prepared_statements_cache(conn)
46   class << conn
47     attr_accessor :prepared_statements
48   end
49   conn.prepared_statements = {}
50 end
database_specific_error_class(exception, opts) click to toggle source
Calls superclass method
   # File lib/sequel/adapters/utils/mysql_mysql2.rb
52 def database_specific_error_class(exception, opts)
53   case exception.errno
54   when 1048
55     NotNullConstraintViolation
56   when 1062
57     UniqueConstraintViolation
58   when 1451, 1452, 1216, 1217
59     ForeignKeyConstraintViolation
60   when 4025
61     CheckConstraintViolation
62   when 1205
63     DatabaseLockTimeout
64   else
65     super
66   end
67 end