summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2019-10-14 16:45:51 +0200
committerOleksandr Byelkin <sanja@mariadb.com>2019-10-15 09:48:49 +0200
commitc2854c7863aa01895febfb6503f542fce6825bd6 (patch)
treeadec4c146a1f4cccdc67978ff1170bfd59312842 /mysql-test
parentea61b79694ee9fcc32e75966ee93c076443f16b4 (diff)
downloadmariadb-git-c2854c7863aa01895febfb6503f542fce6825bd6.tar.gz
MDEV-20466: SHOW PROCESSLIST truncates query text on \0 bytes
Data should be sent with length.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/processlist.result1
-rw-r--r--mysql-test/r/processlist_MDEV-20466.resultbin0 -> 775 bytes
-rw-r--r--mysql-test/t/processlist.test2
-rw-r--r--mysql-test/t/processlist_MDEV-20466.test35
4 files changed, 38 insertions, 0 deletions
diff --git a/mysql-test/r/processlist.result b/mysql-test/r/processlist.result
index eb3af67c5bf..55d2425d269 100644
--- a/mysql-test/r/processlist.result
+++ b/mysql-test/r/processlist.result
@@ -17,3 +17,4 @@ select command, time < 5 from information_schema.processlist where id != connect
command time < 5
Sleep 1
set debug_sync='reset';
+End of 5.5 tests
diff --git a/mysql-test/r/processlist_MDEV-20466.result b/mysql-test/r/processlist_MDEV-20466.result
new file mode 100644
index 00000000000..7120212d0f0
--- /dev/null
+++ b/mysql-test/r/processlist_MDEV-20466.result
Binary files differ
diff --git a/mysql-test/t/processlist.test b/mysql-test/t/processlist.test
index a8f8a4ed64c..8a8995f43b0 100644
--- a/mysql-test/t/processlist.test
+++ b/mysql-test/t/processlist.test
@@ -50,3 +50,5 @@ select command, time < 5 from information_schema.processlist where id != connect
disconnect con1;
set debug_sync='reset';
+
+--echo End of 5.5 tests
diff --git a/mysql-test/t/processlist_MDEV-20466.test b/mysql-test/t/processlist_MDEV-20466.test
new file mode 100644
index 00000000000..70b56d25d72
--- /dev/null
+++ b/mysql-test/t/processlist_MDEV-20466.test
@@ -0,0 +1,35 @@
+--echo # This test has a result that includes \0 byte.
+--echo # Such a byte makes diff to treat the whole file as binary,
+--echo # and to refuse to diff it.
+--echo # That's why this test is put in a separate file,
+--echo # so that diff would still work on results of other tests.
+
+source include/have_debug.inc;
+source include/have_debug_sync.inc;
+
+--echo #
+--echo # MDEV-20466: SHOW PROCESSLIST truncates query text on \0 bytes
+--echo #
+
+connect (con1,localhost,root,,);
+
+#select * from information_schema.processlist;
+connection con1;
+
+let $q= `select CONCAT("SELECT user FROM mysql.user WHERE user ='some", CHAR(0), "' or sleep (3)")`;
+
+SET DEBUG_SYNC= 'before_join_optimize SIGNAL in_sync';
+--send_eval $q;
+
+connection default;
+
+SET DEBUG_SYNC= 'now WAIT_FOR in_sync';
+
+--replace_column 1 ID 3 HOST_NAME 6 TIME 9 TIME_MS
+SHOW PROCESSLIST;
+
+disconnect con1;
+
+SET DEBUG_SYNC = 'RESET';
+
+--echo End of 5.5 tests