From 9f3c014ca3e5b58cfbbe33ee6ffccbb99cc4a356 Mon Sep 17 00:00:00 2001 From: Vesa Pentti Date: Fri, 3 Nov 2017 08:18:50 +0000 Subject: [PATCH] MDEV-10728 -- mysqlbinlog can't be input to mysql client String comparison with utf8_bin collation is case sensitive. Hence "DELIMITER" did not match with "delimiter". The delimiter command matching now uses my_charset_latin1. --- client/mysql.cc | 2 +- mysql-test/r/delimiter_command_case_sensitivity.result | 2 ++ mysql-test/t/delimiter_case_mdev_10728.sql | 3 +++ mysql-test/t/delimiter_command_case_sensitivity.test | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 mysql-test/r/delimiter_command_case_sensitivity.result create mode 100644 mysql-test/t/delimiter_case_mdev_10728.sql create mode 100644 mysql-test/t/delimiter_command_case_sensitivity.test diff --git a/client/mysql.cc b/client/mysql.cc index f581bfcafae..c043d054ea5 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -1094,7 +1094,7 @@ inline bool is_delimiter_command(char *name, ulong len) only name(first DELIMITER_NAME_LEN bytes) is checked. */ return (len >= DELIMITER_NAME_LEN && - !my_strnncoll(charset_info, (uchar*) name, DELIMITER_NAME_LEN, + !my_strnncoll(&my_charset_latin1, (uchar*) name, DELIMITER_NAME_LEN, (uchar *) DELIMITER_NAME, DELIMITER_NAME_LEN)); } diff --git a/mysql-test/r/delimiter_command_case_sensitivity.result b/mysql-test/r/delimiter_command_case_sensitivity.result new file mode 100644 index 00000000000..6ed281c757a --- /dev/null +++ b/mysql-test/r/delimiter_command_case_sensitivity.result @@ -0,0 +1,2 @@ +1 +1 diff --git a/mysql-test/t/delimiter_case_mdev_10728.sql b/mysql-test/t/delimiter_case_mdev_10728.sql new file mode 100644 index 00000000000..72a1dcd9a9e --- /dev/null +++ b/mysql-test/t/delimiter_case_mdev_10728.sql @@ -0,0 +1,3 @@ +DeLiMiTeR A; +SELECT 1 A; +delimiter ; diff --git a/mysql-test/t/delimiter_command_case_sensitivity.test b/mysql-test/t/delimiter_command_case_sensitivity.test new file mode 100644 index 00000000000..2b06a35c723 --- /dev/null +++ b/mysql-test/t/delimiter_command_case_sensitivity.test @@ -0,0 +1,2 @@ +# MDEV-10728 +--exec $MYSQL --default-character-set=binary < "t/delimiter_case_mdev_10728.sql"