• Kristofer Pettersson's avatar
    Bug#44521 Executing a stored procedure as a prepared statement can sometimes cause · d480b64f
    Kristofer Pettersson authored
              an assertion in a debug build.
    
    The reason is that the C API doesn't support multiple result sets for prepared
    statements and attempting to execute a stored routine which returns multiple result
    sets sometimes lead to a network error. The network error sets the diagnostic area
    prematurely which later leads to the assert when an attempt is made to set a second
    server state.
    
    This patch fixes the issue by changing the scope of the error code returned by
    sp_instr_stmt::execute() to include any error which happened during the execution.
    To assure that Diagnostic_area::is_sent really mean that the message was sent all
    network related functions are checked for return status.
    d480b64f
protocol.cc 35.4 KB