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
-
#call_sproc(name, opts = OPTS, &block) ⇒ Object
Support stored procedures on MySQL.
-
#execute(sql, opts = OPTS, &block) ⇒ Object
Executes the given SQL using an available connection, yielding the connection if the block is given.
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 |