Module: ActiveRecord::ConnectionAdapters::MysqlAdapterPatches
- Defined in:
- lib/transaction_isolation_level/adapter_patches.rb
Class Method Summary collapse
Instance Method Summary collapse
- #begin_db_transaction_with_isolation_level ⇒ Object
- #configure_connection_with_isolation_level ⇒ Object
Class Method Details
.included(base) ⇒ Object
88 89 90 91 |
# File 'lib/transaction_isolation_level/adapter_patches.rb', line 88 def self.included(base) base.alias_method_chain :begin_db_transaction, :isolation_level base.alias_method_chain :configure_connection, :isolation_level end |
Instance Method Details
#begin_db_transaction_with_isolation_level ⇒ Object
93 94 95 96 |
# File 'lib/transaction_isolation_level/adapter_patches.rb', line 93 def begin_db_transaction_with_isolation_level execute "SET TRANSACTION #{transaction_isolation_level_sql(@transaction_isolation_level)}" if @transaction_isolation_level # applies only to the next transaction begin_db_transaction_without_isolation_level end |
#configure_connection_with_isolation_level ⇒ Object
98 99 100 101 102 103 104 105 106 |
# File 'lib/transaction_isolation_level/adapter_patches.rb', line 98 def configure_connection_with_isolation_level configure_connection_without_isolation_level if @config[:transaction_isolation_level] @default_transaction_isolation_level = @config[:transaction_isolation_level].to_sym execute "SET SESSION TRANSACTION #{transaction_isolation_level_sql default_transaction_isolation_level}" else @default_transaction_isolation_level = transaction_isolation_level_from_sql(select_value("SELECT @@session.tx_isolation")) end end |