Module: Sequel::MySQL::MysqlMysql2::DatabaseMethods

Included in:
Database, Sequel::Mysql2::Database
Defined in:
lib/sequel/adapters/utils/mysql_mysql2.rb

Constant Summary collapse

MYSQL_DATABASE_DISCONNECT_ERRORS =

Error messages for mysql and mysql2 that indicate the current connection should be disconnected

/\A#{Regexp.union(disconnect_errors)}/

Instance Method Summary collapse

Instance Method Details

#call_sproc(name, opts = OPTS, &block) ⇒ Object

Support stored procedures on MySQL



27
28
29
30
# File 'lib/sequel/adapters/utils/mysql_mysql2.rb', line 27

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) ⇒ Object

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



34
35
36
37
38
39
40
41
42
# File 'lib/sequel/adapters/utils/mysql_mysql2.rb', line 34

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