summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/r/ctype_cp932.result35
-rw-r--r--mysql-test/t/ctype_cp932.test29
-rw-r--r--strings/ctype-mb.c4
3 files changed, 66 insertions, 2 deletions
diff --git a/mysql-test/r/ctype_cp932.result b/mysql-test/r/ctype_cp932.result
new file mode 100644
index 00000000000..4b170ee4c9b
--- /dev/null
+++ b/mysql-test/r/ctype_cp932.result
@@ -0,0 +1,35 @@
+#
+# Bug #11755818 LIKE DOESN'T MATCH WHEN CP932_BIN/SJIS_BIN COLLATIONS ARE
+# USED.
+#
+SET @old_character_set_client= @@character_set_client;
+SET @old_character_set_connection= @@character_set_connection;
+SET @old_character_set_results= @@character_set_results;
+SET character_set_client= 'utf8';
+SET character_set_connection= 'utf8';
+SET character_set_results= 'utf8';
+CREATE TABLE t1 (a VARCHAR(10) COLLATE cp932_bin);
+INSERT INTO t1 VALUES('カカ');
+SELECT * FROM t1 WHERE a LIKE '%カ';
+a
+カカ
+SELECT * FROM t1 WHERE a LIKE '_カ';
+a
+カカ
+SELECT * FROM t1 WHERE a LIKE '%_カ';
+a
+カカ
+ALTER TABLE t1 MODIFY a VARCHAR(100) COLLATE sjis_bin;
+SELECT * FROM t1 WHERE a LIKE '%カ';
+a
+カカ
+SELECT * FROM t1 WHERE a LIKE '_カ';
+a
+カカ
+SELECT * FROM t1 WHERE a LIKE '%_カ';
+a
+カカ
+DROP TABLE t1;
+SET @@character_set_client= @old_character_set_client;
+SET @@character_set_connection= @old_character_set_connection;
+SET @@character_set_results= @old_character_set_results;
diff --git a/mysql-test/t/ctype_cp932.test b/mysql-test/t/ctype_cp932.test
new file mode 100644
index 00000000000..96a2666f69b
--- /dev/null
+++ b/mysql-test/t/ctype_cp932.test
@@ -0,0 +1,29 @@
+-- source include/have_cp932.inc
+--echo #
+--echo # Bug #11755818 LIKE DOESN'T MATCH WHEN CP932_BIN/SJIS_BIN COLLATIONS ARE
+--echo # USED.
+--echo #
+
+SET @old_character_set_client= @@character_set_client;
+SET @old_character_set_connection= @@character_set_connection;
+SET @old_character_set_results= @@character_set_results;
+SET character_set_client= 'utf8';
+SET character_set_connection= 'utf8';
+SET character_set_results= 'utf8';
+
+CREATE TABLE t1 (a VARCHAR(10) COLLATE cp932_bin);
+INSERT INTO t1 VALUES('カカ');
+SELECT * FROM t1 WHERE a LIKE '%カ';
+SELECT * FROM t1 WHERE a LIKE '_カ';
+SELECT * FROM t1 WHERE a LIKE '%_カ';
+
+ALTER TABLE t1 MODIFY a VARCHAR(100) COLLATE sjis_bin;
+SELECT * FROM t1 WHERE a LIKE '%カ';
+SELECT * FROM t1 WHERE a LIKE '_カ';
+SELECT * FROM t1 WHERE a LIKE '%_カ';
+DROP TABLE t1;
+
+## Reset to initial values
+SET @@character_set_client= @old_character_set_client;
+SET @@character_set_connection= @old_character_set_connection;
+SET @@character_set_results= @old_character_set_results;
diff --git a/strings/ctype-mb.c b/strings/ctype-mb.c
index 258613d3b05..02373304672 100644
--- a/strings/ctype-mb.c
+++ b/strings/ctype-mb.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -1044,7 +1044,7 @@ static int my_wildcmp_mb_bin_impl(CHARSET_INFO *cs,
}
if (*wildstr == w_many)
{ /* Found w_many */
- uchar cmp;
+ int cmp;
const char* mb = wildstr;
int mb_len=0;