From 32d6ba65c0da66fe17d59bbdc7346051478993e3 Mon Sep 17 00:00:00 2001 From: Arthur Schreiber Date: Wed, 20 May 2020 10:12:17 +0000 Subject: [PATCH] Actually set `session_track_gtids` on new backends. When a new backend connection was selected, the `session_track_gtids` config variable would be marked as set, but was never actually set on the backed connection. --- lib/MySQL_Session.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/MySQL_Session.cpp b/lib/MySQL_Session.cpp index ce34a00df..ab9a8c452 100644 --- a/lib/MySQL_Session.cpp +++ b/lib/MySQL_Session.cpp @@ -1584,7 +1584,24 @@ bool MySQL_Session::handler_again___verify_backend__generic_variable(uint32_t *b *be_var = strdup(def); uint32_t tmp_int = SpookyHash::Hash32(*be_var, strlen(*be_var), 10); *be_int = tmp_int; + + switch(status) { // this switch can be replaced with a simple previous_status.push(status), but it is here for readibility + case PROCESSING_QUERY: + previous_status.push(PROCESSING_QUERY); + break; + case PROCESSING_STMT_PREPARE: + previous_status.push(PROCESSING_STMT_PREPARE); + break; + case PROCESSING_STMT_EXECUTE: + previous_status.push(PROCESSING_STMT_EXECUTE); + break; + default: + assert(0); + break; + } + NEXT_IMMEDIATE_NEW(next_sess_status); } + if (*fe_int) { if (*fe_int != *be_int) { {