• MySQL Build Team's avatar
    Backport into build-200909221805-5.1.37sp1 · 16b9a2a1
    MySQL Build Team authored
    > ------------------------------------------------------------
    > revno: 3044.1.1
    > revision-id: kristofer.pettersson@sun.com-20090729200708-cb0td7n9r5md0aa0
    > parent: davi.arnaut@sun.com-20090728195938-qabe9ldm2l4k8xns
    > committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
    > branch nick: mysql-5.1-bugteam
    > timestamp: Wed 2009-07-29 22:07:08 +0200
    > message:
    >   Bug#44521 Executing a stored procedure as a prepared statement can sometimes cause
    >             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.
    16b9a2a1
protocol.cc 35.4 KB