Skip to content

Commit

Permalink
MDEV-26868: Session tracking flag in OK_PACKET
Browse files Browse the repository at this point in the history
Take into account client capabilities.
  • Loading branch information
rusher authored and sanja-byelkin committed Oct 26, 2021
1 parent 1f70e4b commit d062b69
Showing 1 changed file with 8 additions and 11 deletions.
19 changes: 8 additions & 11 deletions sql/protocol.cc
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,6 @@ net_send_ok(THD *thd,
NET *net= &thd->net;
StringBuffer<MYSQL_ERRMSG_SIZE + 10> store;

bool state_changed= false;

bool error= FALSE;
DBUG_ENTER("net_send_ok");

Expand All @@ -246,6 +244,11 @@ net_send_ok(THD *thd,
/* last insert id */
store.q_net_store_length(id);

/* if client has not session tracking capability, don't send state change flag*/
if (!(thd->client_capabilities & CLIENT_SESSION_TRACK)) {
server_status &= ~SERVER_SESSION_STATE_CHANGED;
}

if (thd->client_capabilities & CLIENT_PROTOCOL_41)
{
DBUG_PRINT("info",
Expand All @@ -266,21 +269,17 @@ net_send_ok(THD *thd,
}
thd->get_stmt_da()->set_overwrite_status(true);

state_changed=
(thd->client_capabilities & CLIENT_SESSION_TRACK) &&
(server_status & SERVER_SESSION_STATE_CHANGED);

if (state_changed || (message && message[0]))
if ((server_status & SERVER_SESSION_STATE_CHANGED) || (message && message[0]))
{
DBUG_ASSERT(safe_strlen(message) <= MYSQL_ERRMSG_SIZE);
store.q_net_store_data((uchar*) safe_str(message), safe_strlen(message));
}

if (unlikely(state_changed))
if (unlikely(server_status & SERVER_SESSION_STATE_CHANGED))
{
store.set_charset(thd->variables.collation_database);

thd->session_tracker.store(thd, &store);
thd->server_status&= ~SERVER_SESSION_STATE_CHANGED;
}

DBUG_ASSERT(store.length() <= MAX_PACKET_LENGTH);
Expand All @@ -289,8 +288,6 @@ net_send_ok(THD *thd,
if (!error && (!skip_flush || is_eof))
error= net_flush(net);

thd->server_status&= ~SERVER_SESSION_STATE_CHANGED;

thd->get_stmt_da()->set_overwrite_status(false);
DBUG_PRINT("info", ("OK sent, so no more error sending allowed"));

Expand Down

0 comments on commit d062b69

Please sign in to comment.