Module: ActiveRecord::ConnectionAdapters::MysqlAdapterPatches

Defined in:
lib/transaction_isolation_level/adapter_patches.rb

Class Method Summary collapse

Instance Method Summary collapse

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_levelObject



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_levelObject



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