diff --git a/mysql-test/main/log_slow.result b/mysql-test/main/log_slow.result index b80e92da760..81ef7f9af72 100644 --- a/mysql-test/main/log_slow.result +++ b/mysql-test/main/log_slow.result @@ -181,6 +181,30 @@ SET @@global.slow_query_log= @old_slow_query_log; SET SESSION slow_query_log=default; drop table tab_MDEV_30820, tab2; drop function get_zero; -# # End of 10.4 tests # +# MDEV-34539 Invalid "use" and "Schema" in slow query log file with multi-line schema +# +set global log_output='file'; +set @@log_slow_filter= 'not_using_index'; +set slow_query_log=1; +set timestamp=1234567890; +create database `a +b`; +use `a +b`; +select count(*) from mysql.global_priv where length(priv)>2; +count(*) +5 +drop database `a +b`; +use test; +set global log_output= @old_log_output; +set slow_query_log=default; +set log_slow_filter=default; +set timestamp=default; +use `a +b`; +SET timestamp=1234567890; +select count(*) from mysql.global_priv where length(priv)>2 +# End of 10.5 tests diff --git a/mysql-test/main/log_slow.test b/mysql-test/main/log_slow.test index 5da546e569e..a88e4cb1ece 100644 --- a/mysql-test/main/log_slow.test +++ b/mysql-test/main/log_slow.test @@ -186,6 +186,33 @@ drop function get_zero; --enable_ps2_protocol --enable_view_protocol ---echo # --echo # End of 10.4 tests + --echo # +--echo # MDEV-34539 Invalid "use" and "Schema" in slow query log file with multi-line schema +--echo # +set global log_output='file'; +set @@log_slow_filter= 'not_using_index'; +set slow_query_log=1; +set timestamp=1234567890; +create database `a +b`; +use `a +b`; +--disable_ps_protocol +select count(*) from mysql.global_priv where length(priv)>2; +--enable_ps_protocol +drop database `a +b`; +use test; +set global log_output= @old_log_output; +set slow_query_log=default; +set log_slow_filter=default; +set timestamp=default; + +let SEARCH_FILE=`select @@slow_query_log_file`; +let SEARCH_PATTERN=use.*2; +let SEARCH_OUTPUT=matches; +source include/search_pattern_in_file.inc; + +--echo # End of 10.5 tests diff --git a/sql/log.cc b/sql/log.cc index 52543562737..01700cc048d 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -3324,7 +3324,7 @@ bool MYSQL_QUERY_LOG::write(THD *thd, time_t current_time, } if (thd->db.str && strcmp(thd->db.str, db)) { // Database changed - if (my_b_printf(&log_file,"use %s;\n",thd->db.str)) + if (my_b_printf(&log_file,"use %`s;\n",thd->db.str)) goto err; strmov(db,thd->db.str); }