class ActiveRecord::ConnectionAdapters::TransactionManager
def begin_transaction(isolation: nil, joinable: true, _lazy: true)
def begin_transaction(isolation: nil, joinable: true, _lazy: true) @connection.lock.synchronize do run_commit_callbacks = !current_transaction.joinable? transaction = if @stack.empty? RealTransaction.new( @connection, isolation: isolation, joinable: joinable, run_commit_callbacks: run_commit_callbacks ) else SavepointTransaction.new( @connection, "active_record_#{@stack.size}", @stack.last, isolation: isolation, joinable: joinable, run_commit_callbacks: run_commit_callbacks ) end if @connection.supports_lazy_transactions? && lazy_transactions_enabled? && _lazy @has_unmaterialized_transactions = true else transaction.materialize! end @stack.push(transaction) transaction end end