From da2bf094ee009eff994e8bb35d417bbf33b3508f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Canna=C3=B2?= Date: Tue, 10 Aug 2021 14:58:05 +0200 Subject: [PATCH] Fixed some minor but important bugs on the new implementation on how session variables are handled --- lib/mysql_connection.cpp | 5 ++++- test/tap/tests/set_testing-t.cpp | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/mysql_connection.cpp b/lib/mysql_connection.cpp index 2d16301ba..08aa0c199 100644 --- a/lib/mysql_connection.cpp +++ b/lib/mysql_connection.cpp @@ -577,7 +577,7 @@ bool MySQL_Connection::requires_CHANGE_USER(const MySQL_Connection *client_conn) } } } - if (client_conn->dynamic_variables_idx.size() > dynamic_variables_idx.size()) { + if (client_conn->dynamic_variables_idx.size() < dynamic_variables_idx.size()) { // the server connection has more variables set than the client return true; } @@ -606,6 +606,8 @@ unsigned int MySQL_Connection::reorder_dynamic_variables_idx() { dynamic_variables_idx.push_back(i); } } + unsigned int r = dynamic_variables_idx.size(); + return r; } unsigned int MySQL_Connection::number_of_matching_session_variables(const MySQL_Connection *client_conn, unsigned int& not_matching) { @@ -2585,6 +2587,7 @@ void MySQL_Connection::reset() { var_hash[i] = 0; } } + dynamic_variables_idx.clear(); if (options.init_connect) { free(options.init_connect); diff --git a/test/tap/tests/set_testing-t.cpp b/test/tap/tests/set_testing-t.cpp index e71e8d1b6..c649ce39b 100644 --- a/test/tap/tests/set_testing-t.cpp +++ b/test/tap/tests/set_testing-t.cpp @@ -692,6 +692,7 @@ int main(int argc, char *argv[]) { if (!first_dash || !strstr(first_dash+1, "-")) { is_cluster = false; } else { + // FIXME: we need a better version detection is_cluster = true; } }