MXS-2707: Retain commands that respond

Only commands that return a response should to be retained. Otherwise the
bookkeeping of m_current_query will be wrong.
This commit is contained in:
Markus Mäkelä 2019-10-03 22:17:44 +03:00
parent fffbb9f791
commit 869effc352
No known key found for this signature in database
GPG Key ID: 72D48FCE664F7B19

View File

@ -1735,7 +1735,6 @@ static int route_by_statement(MXS_SESSION* session, uint64_t capabilities, GWBUF
{
// TODO: Do this only when RCAP_TYPE_CONTIGUOUS_INPUT is requested
packetbuf = gwbuf_make_contiguous(packetbuf);
session_retain_statement(session, packetbuf);
MySQLProtocol* proto = (MySQLProtocol*)session->client_dcb->protocol;
@ -1745,6 +1744,11 @@ static int route_by_statement(MXS_SESSION* session, uint64_t capabilities, GWBUF
if (!proto->changing_user && !session_is_load_active(session))
{
update_current_command(session->client_dcb, packetbuf);
if (mxs_mysql_command_will_respond(proto->current_command))
{
session_retain_statement(session, packetbuf);
}
}
if (rcap_type_required(capabilities, RCAP_TYPE_CONTIGUOUS_INPUT))