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 27 def call_sproc(name, opts=OPTS, &block) 28 args = opts[:args] || [] 29 execute("CALL #{name}#{args.empty? ? '()' : literal(args)}", opts.merge(:sproc=>false), &block) 30 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 34 def execute(sql, opts=OPTS, &block) 35 if opts[:sproc] 36 call_sproc(sql, opts, &block) 37 elsif sql.is_a?(Symbol) || sql.is_a?(Sequel::Dataset::ArgumentMapper) 38 execute_prepared_statement(sql, opts, &block) 39 else 40 synchronize(opts[:server]){|conn| _execute(conn, sql, opts, &block)} 41 end 42 end
Private Instance Methods
add_prepared_statements_cache(conn)
click to toggle source
# File lib/sequel/adapters/utils/mysql_mysql2.rb 46 def add_prepared_statements_cache(conn) 47 class << conn 48 attr_accessor :prepared_statements 49 end 50 conn.prepared_statements = {} 51 end
database_specific_error_class(exception, opts)
click to toggle source
Calls superclass method
# File lib/sequel/adapters/utils/mysql_mysql2.rb 53 def database_specific_error_class(exception, opts) 54 case exception.errno 55 when 1048 56 NotNullConstraintViolation 57 when 1062 58 UniqueConstraintViolation 59 when 1451, 1452, 1216, 1217 60 ForeignKeyConstraintViolation 61 when 4025 62 CheckConstraintViolation 63 when 1205 64 DatabaseLockTimeout 65 else 66 super 67 end 68 end