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

Private Instance Methods

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