From 394f6ba478e394bcdbfb04c56ee6daa007ef554d Mon Sep 17 00:00:00 2001 From: Sergey Glukhov Date: Thu, 28 May 2009 13:34:30 +0500 Subject: [PATCH] Bug#37268 'binary' character set makes CLI-internal commands case sensitive The fix is to use case insensitive collation for mysql client command search. --- client/mysql.cc | 4 ++-- mysql-test/r/mysql.result | 1 + mysql-test/t/mysql.test | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/client/mysql.cc b/client/mysql.cc index 89f1f28bb1b..b7d66071ca5 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -1949,7 +1949,7 @@ static COMMANDS *find_command(char *name,char cmd_char) */ if (strstr(name, "\\g") || (strstr(name, delimiter) && !(strlen(name) >= 9 && - !my_strnncoll(charset_info, + !my_strnncoll(&my_charset_latin1, (uchar*) name, 9, (const uchar*) "delimiter", 9)))) @@ -1970,7 +1970,7 @@ static COMMANDS *find_command(char *name,char cmd_char) { if (commands[i].func && ((name && - !my_strnncoll(charset_info,(uchar*)name,len, + !my_strnncoll(&my_charset_latin1, (uchar*)name, len, (uchar*)commands[i].name,len) && !commands[i].name[len] && (!end || (end && commands[i].takes_params))) || diff --git a/mysql-test/r/mysql.result b/mysql-test/r/mysql.result index 5f315bca9c2..d1e8ba1e253 100644 --- a/mysql-test/r/mysql.result +++ b/mysql-test/r/mysql.result @@ -198,4 +198,5 @@ COUNT (*) 1 COUNT (*) 1 +ERROR 2005 (HY000) at line 1: Unknown MySQL server host 'invalid_hostname' (1) End of 5.0 tests diff --git a/mysql-test/t/mysql.test b/mysql-test/t/mysql.test index 0425b4b9022..45077b5ef80 100644 --- a/mysql-test/t/mysql.test +++ b/mysql-test/t/mysql.test @@ -348,4 +348,11 @@ remove_file $MYSQLTEST_VARDIR/tmp/bug31060.sql; --exec $MYSQL --ignore-spaces -e "SELECT COUNT (*)" --exec $MYSQL -b -i -e "SELECT COUNT (*)" +# +# Bug#37268 'binary' character set makes CLI-internal commands case sensitive +# +--error 1 +--exec $MYSQL --default-character-set=binary test -e "CONNECT test invalid_hostname" 2>&1 +--exec $MYSQL --default-character-set=binary test -e "DELIMITER //" 2>&1 + --echo End of 5.0 tests