diff --git a/lib/MySQL_HostGroups_Manager.cpp b/lib/MySQL_HostGroups_Manager.cpp index 275646ddb..a484bebad 100644 --- a/lib/MySQL_HostGroups_Manager.cpp +++ b/lib/MySQL_HostGroups_Manager.cpp @@ -3039,8 +3039,8 @@ SQLite3_result * MySQL_HostGroups_Manager::SQL3_Free_Connections() { j["charset"] = _my->charset->nr; j["options"]["charset_name"] = _my->options.charset_name; j["options"]["use_ssl"] = _my->options.use_ssl; - j["client_flag"]["client_found_rows"] = (_my->client_flag & CLIENT_FOUND_ROWS); - j["client_flag"]["client_multi_statements"] = (_my->client_flag & CLIENT_MULTI_STATEMENTS); + j["client_flag"]["client_found_rows"] = (_my->client_flag & CLIENT_FOUND_ROWS ? 1 : 0); + j["client_flag"]["client_multi_statements"] = (_my->client_flag & CLIENT_MULTI_STATEMENTS ? 1 : 0); j["net"]["last_errno"] = _my->net.last_errno; j["net"]["fd"] = _my->net.fd; j["net"]["max_packet_size"] = _my->net.max_packet_size; diff --git a/lib/MySQL_Session.cpp b/lib/MySQL_Session.cpp index b724766d4..3e809dd3a 100644 --- a/lib/MySQL_Session.cpp +++ b/lib/MySQL_Session.cpp @@ -872,7 +872,9 @@ void MySQL_Session::generate_proxysql_internal_session_json(json &j) { j["conn"]["charset"] = client_myds->myconn->options.charset; j["conn"]["sql_log_bin"] = client_myds->myconn->options.sql_log_bin; j["conn"]["autocommit"] = client_myds->myconn->options.autocommit; - j["conn"]["client_flag"] = client_myds->myconn->options.client_flag; + j["conn"]["client_flag"]["value"] = client_myds->myconn->options.client_flag; + j["conn"]["client_flag"]["client_found_rows"] = (client_myds->myconn->options.client_flag & CLIENT_FOUND_ROWS ? 1 : 0); + j["conn"]["client_flag"]["client_multi_statements"] = (client_myds->myconn->options.client_flag & CLIENT_MULTI_STATEMENTS ? 1 : 0); j["conn"]["no_backslash_escapes"] = client_myds->myconn->options.no_backslash_escapes; j["conn"]["status"]["compression"] = client_myds->myconn->get_status_compression(); j["conn"]["status"]["transaction"] = client_myds->myconn->get_status_transaction(); @@ -925,6 +927,9 @@ void MySQL_Session::generate_proxysql_internal_session_json(json &j) { j["backends"][i]["conn"]["MultiplexDisabled"] = _myconn->MultiplexDisabled(); j["backends"][i]["conn"]["ps"]["backend_stmt_to_global_ids"] = _myconn->local_stmts->backend_stmt_to_global_ids; j["backends"][i]["conn"]["ps"]["global_stmt_to_backend_ids"] = _myconn->local_stmts->global_stmt_to_backend_ids; + j["backends"][i]["conn"]["client_flag"]["value"] = _myconn->options.client_flag; + j["backends"][i]["conn"]["client_flag"]["client_found_rows"] = (_myconn->options.client_flag & CLIENT_FOUND_ROWS ? 1 : 0); + j["backends"][i]["conn"]["client_flag"]["client_multi_statements"] = (_myconn->options.client_flag & CLIENT_MULTI_STATEMENTS ? 1 : 0); if (_myconn->mysql && _myconn->ret_mysql) { MYSQL * _my = _myconn->mysql; sprintf(buff,"%p",_my); diff --git a/lib/mysql_connection.cpp b/lib/mysql_connection.cpp index 0509c7188..8073f3fe9 100644 --- a/lib/mysql_connection.cpp +++ b/lib/mysql_connection.cpp @@ -452,8 +452,8 @@ bool MySQL_Connection::get_status_sql_log_bin0() { } bool MySQL_Connection::match_tracked_options(MySQL_Connection *c) { - uint16_t cf1 = options.client_flag; // own client flags - uint16_t cf2 = c->options.client_flag; // other client flags + uint32_t cf1 = options.client_flag; // own client flags + uint32_t cf2 = c->options.client_flag; // other client flags if ((cf1 & CLIENT_FOUND_ROWS) == (cf2 & CLIENT_FOUND_ROWS)) { if ((cf1 & CLIENT_MULTI_STATEMENTS) == (cf2 & CLIENT_MULTI_STATEMENTS)) { if ((cf1 & CLIENT_IGNORE_SPACE) == (cf2 & CLIENT_IGNORE_SPACE)) { @@ -494,7 +494,7 @@ void MySQL_Connection::connect_start() { if (myds->sess) { if (myds->sess->client_myds) { if (myds->sess->client_myds->myconn) { - uint16_t orig_client_flags = myds->sess->client_myds->myconn->options.client_flag; + uint32_t orig_client_flags = myds->sess->client_myds->myconn->options.client_flag; if (orig_client_flags & CLIENT_FOUND_ROWS) { client_flags += CLIENT_FOUND_ROWS; }