From a661d333918a390c58df3535b151e3c73476fe7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jaramago=20Fern=C3=A1ndez?= Date: Wed, 23 Nov 2022 19:09:12 +0100 Subject: [PATCH] Fix invalid digest value in 'eventslog' for 'COM_STMT_EXECUTE' 'COM_STMT_EXECUTE' invalidly reported the 'digest' value from the previous query when preceded by a 'COM_QUERY'. --- lib/MySQL_Logger.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/MySQL_Logger.cpp b/lib/MySQL_Logger.cpp index fcb1f55f3..509df0375 100644 --- a/lib/MySQL_Logger.cpp +++ b/lib/MySQL_Logger.cpp @@ -686,11 +686,20 @@ void MySQL_Logger::log_request(MySQL_Session *sess, MySQL_Data_Stream *myds) { default: break; } + + uint64_t query_digest = 0; + + if (sess->status != PROCESSING_STMT_EXECUTE) { + query_digest = GloQPro->get_digest(&sess->CurrentQuery.QueryParserArgs); + } else { + query_digest = sess->CurrentQuery.stmt_info->digest; + } + MySQL_Event me(let, sess->thread_session_id,ui->username,ui->schemaname, sess->CurrentQuery.start_time + curtime_real - curtime_mono, sess->CurrentQuery.end_time + curtime_real - curtime_mono, - GloQPro->get_digest(&sess->CurrentQuery.QueryParserArgs), + query_digest, ca, cl ); char *c = NULL;