Class: ActiveRecord::ConnectionAdapters::NeverBlockMysqlAdapter
- Inherits:
-
MysqlAdapter
- Object
- MysqlAdapter
- ActiveRecord::ConnectionAdapters::NeverBlockMysqlAdapter
- Defined in:
- lib/active_record/connection_adapters/neverblock_mysql_adapter.rb
Instance Method Summary collapse
-
#adapter_name ⇒ Object
Returns ‘NeverBlockMySQL’ as adapter name for identification purposes.
- #begin_db_transaction ⇒ Object
- #commit_db_transaction ⇒ Object
- #connect ⇒ Object
-
#insert_sql(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil) ⇒ Object
:nodoc:.
- #rollback_db_transaction ⇒ Object
-
#update_sql(sql, name = nil) ⇒ Object
:nodoc:.
Instance Method Details
#adapter_name ⇒ Object
Returns ‘NeverBlockMySQL’ as adapter name for identification purposes
9 10 11 |
# File 'lib/active_record/connection_adapters/neverblock_mysql_adapter.rb', line 9 def adapter_name 'NeverBlockMySQL' end |
#begin_db_transaction ⇒ Object
27 28 29 |
# File 'lib/active_record/connection_adapters/neverblock_mysql_adapter.rb', line 27 def begin_db_transaction @connection.begin_db_transaction end |
#commit_db_transaction ⇒ Object
31 32 33 |
# File 'lib/active_record/connection_adapters/neverblock_mysql_adapter.rb', line 31 def commit_db_transaction @connection.commit_db_transaction end |
#connect ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/active_record/connection_adapters/neverblock_mysql_adapter.rb', line 39 def connect @connection = ::NB::DB::PooledDBConnection.new(@connection_options.shift) do conn = ::NB::DB::FMysql.init encoding = @config[:encoding] if encoding conn.(::NB::DB::FMysql::SET_CHARSET_NAME, encoding) rescue nil end conn.ssl_set(@config[:sslkey], @config[:sslcert], @config[:sslca], @config[:sslcapath], @config[:sslcipher]) if @config[:sslkey] conn.real_connect(*@connection_options) NB.neverblock(false) do conn.query("SET NAMES '#{encoding}'") if encoding # By default, MySQL 'where id is null' selects the last inserted id. # Turn this off. http://dev.rubyonrails.org/ticket/6778 conn.query("SET SQL_AUTO_IS_NULL=0") end conn.register_with_event_loop(:em) conn end end |
#insert_sql(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil) ⇒ Object
:nodoc:
13 14 15 16 17 18 |
# File 'lib/active_record/connection_adapters/neverblock_mysql_adapter.rb', line 13 def insert_sql(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil) #:nodoc: begin_db_transaction super sql, name id_value || @connection.insert_id commit_db_transaction end |
#rollback_db_transaction ⇒ Object
35 36 37 |
# File 'lib/active_record/connection_adapters/neverblock_mysql_adapter.rb', line 35 def rollback_db_transaction @connection.rollback_db_transaction end |
#update_sql(sql, name = nil) ⇒ Object
:nodoc:
20 21 22 23 24 25 |
# File 'lib/active_record/connection_adapters/neverblock_mysql_adapter.rb', line 20 def update_sql(sql, name = nil) #:nodoc: begin_db_transaction super @connection.affected_rows commit_db_transaction end |